Hello community,

here is the log from the commit of package glibc for openSUSE:Factory checked 
in at 2013-09-13 14:43:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/glibc (Old)
 and      /work/SRC/openSUSE:Factory/.glibc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "glibc"

Changes:
--------
--- /work/SRC/openSUSE:Factory/glibc/glibc-testsuite.changes    2013-09-12 
07:09:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.glibc.new/glibc-testsuite.changes       
2013-09-13 14:43:42.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Sep 12 13:42:23 UTC 2013 - sch...@suse.de
+
+- malloc-overflows.patch: Fix integer overflows in malloc (CVE-2013-4332,
+  bnc#839870)
+
+-------------------------------------------------------------------
glibc-utils.changes: same change
glibc.changes: same change

New:
----
  malloc-overflows.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ glibc-testsuite.spec ++++++
--- /var/tmp/diff_new_pack.mhhYnQ/_old  2013-09-13 14:43:43.000000000 +0200
+++ /var/tmp/diff_new_pack.mhhYnQ/_new  2013-09-13 14:43:43.000000000 +0200
@@ -242,6 +242,8 @@
 ###
 # PATCH-FIX-UPSTREAM Add O_TMPFILE to <fcntl.h>
 Patch1000:      fcntl-o-tmpfile.patch
+# PATCH-FIX-UPSTREAM Integer overflows in malloc
+Patch1001:      malloc-overflows.patch
 
 ### 
 # Patches awaiting upstream approval
@@ -465,6 +467,7 @@
 %patch306 -p1
 
 %patch1000 -p1
+%patch1001 -p1
 
 # XXX Disable, it breaks the testsuite, test elf/tst-audit2 
 # %patch2008 -p1

glibc-utils.spec: same change
glibc.spec: same change

++++++ malloc-overflows.patch ++++++
2013-09-11  Will Newton  <will.new...@linaro.org>

        [BZ #15857]
        * malloc/malloc.c (__libc_memalign): Check the value of bytes
        does not overflow.

        [BZ #15856]
        * malloc/malloc.c (__libc_valloc): Check the value of bytes
        does not overflow.

        [BZ #15855]
        * malloc/malloc.c (__libc_pvalloc): Check the value of bytes
        does not overflow.

Index: glibc-2.18/malloc/malloc.c
===================================================================
--- glibc-2.18.orig/malloc/malloc.c
+++ glibc-2.18/malloc/malloc.c
@@ -3015,6 +3015,13 @@ __libc_memalign(size_t alignment, size_t
   /* Otherwise, ensure that it is at least a minimum chunk size */
   if (alignment <  MINSIZE) alignment = MINSIZE;
 
+  /* Check for overflow.  */
+  if (bytes > SIZE_MAX - alignment - MINSIZE)
+    {
+      __set_errno (ENOMEM);
+      return 0;
+    }
+
   arena_get(ar_ptr, bytes + alignment + MINSIZE);
   if(!ar_ptr)
     return 0;
@@ -3046,6 +3053,13 @@ __libc_valloc(size_t bytes)
 
   size_t pagesz = GLRO(dl_pagesize);
 
+  /* Check for overflow.  */
+  if (bytes > SIZE_MAX - pagesz - MINSIZE)
+    {
+      __set_errno (ENOMEM);
+      return 0;
+    }
+
   void *(*hook) (size_t, size_t, const void *) =
     force_reg (__memalign_hook);
   if (__builtin_expect (hook != NULL, 0))
@@ -3082,6 +3096,13 @@ __libc_pvalloc(size_t bytes)
   size_t page_mask = GLRO(dl_pagesize) - 1;
   size_t rounded_bytes = (bytes + page_mask) & ~(page_mask);
 
+  /* Check for overflow.  */
+  if (bytes > SIZE_MAX - 2*pagesz - MINSIZE)
+    {
+      __set_errno (ENOMEM);
+      return 0;
+    }
+
   void *(*hook) (size_t, size_t, const void *) =
     force_reg (__memalign_hook);
   if (__builtin_expect (hook != NULL, 0))
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to