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

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



Author: madcoder
Date: 2007-02-12 00:27:31 +0100 (Mon, 12 Feb 2007)
New Revision: 1972

Added:
   glibc-package/trunk/debian/patches/any/cvs-sunrpc-xdrmem_setpos.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
Fix 389084 (integer overflow due to ptr-to-long conversion).

  * patches/any/cvs-sunrpc-xdrmem_setpos.diff: fix a pointer-to-cast problem
    in sunrpc, backport from glibc-2.5. Closes: #389084.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>


Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2007-02-11 23:16:50 UTC (rev 1971)
+++ glibc-package/trunk/debian/changelog	2007-02-11 23:27:31 UTC (rev 1972)
@@ -1,3 +1,11 @@
+glibc (2.3.6.ds1-12) UNRELEASED; urgency=low
+
+  [ Pierre Habouzit ]
+  * patches/any/cvs-sunrpc-xdrmem_setpos.diff: fix a pointer-to-cast problem
+    in sunrpc, backport from glibc-2.5. Closes: #389084.
+
+ -- Pierre Habouzit <madcoder@debian.org>  Mon, 12 Feb 2007 00:23:01 +0100
+
 glibc (2.3.6.ds1-11) unstable; urgency=low
 
   * patches/kfreebsd/local-sysdeps.diff: update to revision 1886 (from

Added: glibc-package/trunk/debian/patches/any/cvs-sunrpc-xdrmem_setpos.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-sunrpc-xdrmem_setpos.diff	2007-02-11 23:16:50 UTC (rev 1971)
+++ glibc-package/trunk/debian/patches/any/cvs-sunrpc-xdrmem_setpos.diff	2007-02-11 23:27:31 UTC (rev 1972)
@@ -0,0 +1,24 @@
+Index: glibc-2.3.6/sunrpc/xdr_mem.c
+===================================================================
+--- glibc-2.3.6.orig/sunrpc/xdr_mem.c
++++ glibc-2.3.6/sunrpc/xdr_mem.c
+@@ -177,13 +177,15 @@
+ {
+   caddr_t newaddr = xdrs->x_base + pos;
+   caddr_t lastaddr = xdrs->x_private + xdrs->x_handy;
++  size_t handy = lastaddr - newaddr;
+ 
+-  if ((long) newaddr > (long) lastaddr
+-      || (UINT_MAX < LONG_MAX
+-	  && (long) UINT_MAX < (long) lastaddr - (long) newaddr))
++  if (newaddr > lastaddr
++      || newaddr < xdrs->x_base
++      || handy != (u_int) handy)
+     return FALSE;
++
+   xdrs->x_private = newaddr;
+-  xdrs->x_handy = (long) lastaddr - (long) newaddr;
++  xdrs->x_handy = (u_int) handy;
+   return TRUE;
+ }
+ 

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2007-02-11 23:16:50 UTC (rev 1971)
+++ glibc-package/trunk/debian/patches/series	2007-02-11 23:27:31 UTC (rev 1972)
@@ -184,4 +184,4 @@
 any/submitted-eh-frame-terminator.diff -p1
 any/submitted-nis-netgrp.diff 
 any/submitted-strfmon.diff
-
+any/cvs-sunrpc-xdrmem_setpos.diff



Reply to: