]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix memory leaks in libio on allocation failure
authorAllan McRae <allan@archlinux.org>
Mon, 9 Sep 2013 12:50:41 +0000 (22:50 +1000)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Thu, 31 Oct 2013 15:12:37 +0000 (10:12 -0500)
ChangeLog
NEWS
libio/memstream.c
libio/wmemstream.c

index 2f9dea5d0b7f806762bac4911e80e4d26f5f41fa..68909c8ec96ad60def6d084372508695ad84378d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-09-09  Allan McRae  <allan@archlinux.org>
+
+       [BZ #15892]
+       * libio/memstream.c (open_memstream): Fix memory leak.
+       * libio/wmemstream.c (open_wmemstream): Likewise.
+
+       [BZ #15895]
+       * nscd/netgroupcache.c: Fix nesting of ifdefs.
+
 2013-09-05  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
        * sysdeps/powerpc/powerpc32/power7/memrchr.S (__memrchr): Fix invalid
diff --git a/NEWS b/NEWS
index 6a62ddf6fde004a893e02d6a30b5cafa3ff03662..90ff9932e5670b86085b359918ab6f3006a19b58 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -22,7 +22,7 @@ Version 2.18
   15423, 15424, 15426, 15427, 15429, 15431, 15432, 15441, 15442, 15448,
   15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506, 15522,
   15529, 15532, 15536, 15553, 15577, 15583, 15618, 15627, 15631, 15654,
-  15655, 15666, 15667, 15674, 15711, 15755, 15759, 15797.
+  15655, 15666, 15667, 15674, 15711, 15755, 15759, 15797, 15892, 15895.
 
 * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
   has been fixed by disabling the use of pt_chown (Bugzilla #15755).
index 34534e2f94c4a29d66f0e6d76fd6cb8798d9e136..3cb1bd7057de44f11b975c04973c9a4735a5e5ba 100644 (file)
@@ -84,7 +84,10 @@ open_memstream (bufloc, sizeloc)
 
   buf = calloc (1, _IO_BUFSIZ);
   if (buf == NULL)
-    return NULL;
+    {
+      free (new_f);
+      return NULL;
+    }
   _IO_init (&new_f->fp._sf._sbf._f, 0);
   _IO_JUMPS ((struct _IO_FILE_plus *) &new_f->fp._sf._sbf) = &_IO_mem_jumps;
   _IO_str_init_static_internal (&new_f->fp._sf, buf, _IO_BUFSIZ, buf);
index 65738d4d7f241c456309b69d0309b41896ca7def..fd7fe44c4c34d76af8a5375a2b6644a5238f0cae 100644 (file)
@@ -85,8 +85,10 @@ open_wmemstream (bufloc, sizeloc)
 
   buf = calloc (1, _IO_BUFSIZ);
   if (buf == NULL)
-    return NULL;
-
+    {
+      free (new_f);
+      return NULL;
+    }
   _IO_no_init (&new_f->fp._sf._sbf._f, 0, 0, &new_f->wd, &_IO_wmem_jumps);
   _IO_fwide (&new_f->fp._sf._sbf._f, 1);
   _IO_wstr_init_static (&new_f->fp._sf._sbf._f, buf,