diff options
| author | Eli Zaretskii | 2013-02-18 18:38:50 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2013-02-18 18:38:50 +0200 |
| commit | 17ddfd150ff1d84021342ee82ff53b5860579252 (patch) | |
| tree | df45d278191f113d9e8cea464d91778ab7ba7b2b /src | |
| parent | c1b9b2c27fafbb7e20ba5628771e8f75c3bfd32b (diff) | |
| download | emacs-17ddfd150ff1d84021342ee82ff53b5860579252.tar.gz emacs-17ddfd150ff1d84021342ee82ff53b5860579252.zip | |
Avoid leaking handles on MS-Windows.
src/w32proc.c (new_child): Avoid leaking handles if the subprocess
resources were not orderly released.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/w32proc.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 4325d35adee..99b5e8734e9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2013-02-18 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * w32proc.c (new_child): Avoid leaking handles if the subprocess | ||
| 4 | resources were not orderly released. | ||
| 5 | |||
| 1 | 2013-02-17 Eli Zaretskii <eliz@gnu.org> | 6 | 2013-02-17 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * w32proc.c (new_child): Remove the loop that attempted to salvage | 8 | * w32proc.c (new_child): Remove the loop that attempted to salvage |
diff --git a/src/w32proc.c b/src/w32proc.c index 3b4522bf16b..da4549bd7df 100644 --- a/src/w32proc.c +++ b/src/w32proc.c | |||
| @@ -802,6 +802,12 @@ new_child (void) | |||
| 802 | cp = &child_procs[child_proc_count++]; | 802 | cp = &child_procs[child_proc_count++]; |
| 803 | 803 | ||
| 804 | Initialize: | 804 | Initialize: |
| 805 | /* Last opportunity to avoid leaking handles before we forget them | ||
| 806 | for good. */ | ||
| 807 | if (cp->procinfo.hProcess) | ||
| 808 | CloseHandle (cp->procinfo.hProcess); | ||
| 809 | if (cp->procinfo.hThread) | ||
| 810 | CloseHandle (cp->procinfo.hThread); | ||
| 805 | memset (cp, 0, sizeof (*cp)); | 811 | memset (cp, 0, sizeof (*cp)); |
| 806 | cp->fd = -1; | 812 | cp->fd = -1; |
| 807 | cp->pid = -1; | 813 | cp->pid = -1; |