aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPascal Obry <obry@adacore.com>2018-05-23 10:24:04 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-23 10:24:04 +0000
commitcd742f4a165865225a3a6c6d1bd287897994bdd1 (patch)
tree4e15cbe2ec77273513a9c82549d290c9dafcefc8 /gcc
parentc2d2963d2c69d3a52e491e149fbaeeb5813b9e24 (diff)
downloadgcc-cd742f4a165865225a3a6c6d1bd287897994bdd1.zip
gcc-cd742f4a165865225a3a6c6d1bd287897994bdd1.tar.gz
gcc-cd742f4a165865225a3a6c6d1bd287897994bdd1.tar.bz2
[Ada] Fix memory leak in win32_wait error handling
2018-05-23 Pascal Obry <obry@adacore.com> gcc/ada/ * adaint.c (win32_wait): Properly free the handle/pid lists when WaitForMultipleObjects fails (return WAIT_FAILED). From-SVN: r260599
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/adaint.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index c2df68d..e44bdc6 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,10 @@
2018-05-23 Pascal Obry <obry@adacore.com>
+ * adaint.c (win32_wait): Properly free the handle/pid lists when
+ WaitForMultipleObjects fails (return WAIT_FAILED).
+
+2018-05-23 Pascal Obry <obry@adacore.com>
+
* adaint.c (win32_wait): Add missing parentheses.
2018-05-23 Hristian Kirtchev <kirtchev@adacore.com>
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 07e55e4..552bd44 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -2607,6 +2607,8 @@ win32_wait (int *status)
/* If there was an error, exit now */
if (res == WAIT_FAILED)
{
+ free (hl);
+ free (pidl);
errno = EINVAL;
return -1;
}