[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r4542 - in glibc-package/trunk/debian: . patches patches/any



Author: aurel32
Date: 2011-02-26 17:10:17 +0000 (Sat, 26 Feb 2011)
New Revision: 4542

Added:
   glibc-package/trunk/debian/patches/any/cvs-qsort-race.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * Add patches/any/cvs-qsort-race.diff from upstream to fix race in
    qsort_r().  Closes: #614892.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2011-02-26 17:05:56 UTC (rev 4541)
+++ glibc-package/trunk/debian/changelog	2011-02-26 17:10:17 UTC (rev 4542)
@@ -2,9 +2,11 @@
 
   [ Aurelien Jarno ]
   * Re-enable build failure in case of testsuite regressions.
-  * Add patches/any/cvs-fnmatch-alloca.patch from upstream to a memory
-    corruption in fnmatch() that can lead to code execution.  Closes:
-    #615120.
+  * Add patches/any/cvs-fnmatch-alloca.patch from upstream to fix a 
+    memory corruption in fnmatch() that can lead to code execution.  
+    Closes: #615120.
+  * Add patches/any/cvs-qsort-race.diff from upstream to fix race in
+    qsort_r().  Closes: #614892.
 
   [ Samuel Thibault ]
   * patches/any/submitted-sched_h.diff: Synchronize bits/sched.h with

Added: glibc-package/trunk/debian/patches/any/cvs-qsort-race.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-qsort-race.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/any/cvs-qsort-race.diff	2011-02-26 17:10:17 UTC (rev 4542)
@@ -0,0 +1,37 @@
+2010-12-09  Ulrich Drepper  <drepper@gmail.com>
+
+	[BZ #11655]
+	* stdlib/msort.c (qsort_r): Make sure both phys_pages and pagesize
+	are initialized.
+
+diff --git a/stdlib/msort.c b/stdlib/msort.c
+index 35cd4d0..fc58f0d 100644
+--- a/stdlib/msort.c
++++ b/stdlib/msort.c
+@@ -25,6 +25,7 @@
+ #include <unistd.h>
+ #include <memcopy.h>
+ #include <errno.h>
++#include <atomic.h>
+ 
+ struct msort_param
+ {
+@@ -182,7 +183,7 @@ qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg)
+       static long int phys_pages;
+       static int pagesize;
+ 
+-      if (phys_pages == 0)
++      if (pagesize == 0)
+ 	{
+ 	  phys_pages = __sysconf (_SC_PHYS_PAGES);
+ 
+@@ -197,6 +198,9 @@ qsort_r (void *b, size_t n, size_t s, __compar_d_fn_t cmp, void *arg)
+ 	     a quarter of the physical memory.  */
+ 	  phys_pages /= 4;
+ 
++	  /* Make sure phys_pages is written to memory.  */
++	  atomic_write_barrier ();
++
+ 	  pagesize = __sysconf (_SC_PAGESIZE);
+ 	}
+ 

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2011-02-26 17:05:56 UTC (rev 4541)
+++ glibc-package/trunk/debian/patches/series	2011-02-26 17:10:17 UTC (rev 4542)
@@ -271,3 +271,4 @@
 any/cvs-dont-expand-dst-twice.diff
 any/cvs-ignore-origin-privileged.diff
 any/cvs-fnmatch-alloca.patch
+any/cvs-qsort-race.diff


Reply to: