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: