[Ada] Fix memory leak in win32_wait error handling
authorPascal Obry <obry@adacore.com>
Wed, 23 May 2018 10:24:04 +0000 (10:24 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 23 May 2018 10:24:04 +0000 (10:24 +0000)
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

gcc/ada/ChangeLog
gcc/ada/adaint.c

index c2df68d..e44bdc6 100644 (file)
@@ -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>
index 07e55e4..552bd44 100644 (file)
@@ -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;
     }