aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2013-02-18 18:38:50 +0200
committerEli Zaretskii2013-02-18 18:38:50 +0200
commit17ddfd150ff1d84021342ee82ff53b5860579252 (patch)
treedf45d278191f113d9e8cea464d91778ab7ba7b2b /src
parentc1b9b2c27fafbb7e20ba5628771e8f75c3bfd32b (diff)
downloademacs-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/ChangeLog5
-rw-r--r--src/w32proc.c6
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 @@
12013-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
12013-02-17 Eli Zaretskii <eliz@gnu.org> 62013-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;