summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Ahlberg <aliz@gentoo.org>2003-03-31 10:45:10 +0000
committerDaniel Ahlberg <aliz@gentoo.org>2003-03-31 10:45:10 +0000
commit5193ca294ce868ca59c54a289be57dafa95efb8c (patch)
tree344a0018d9c80588c4a1da0a8f8e4a03f3900c4d /dev-libs/dietlibc
parentfixed pose breakage by disabling profiled version until something better can ... (diff)
downloadgentoo-2-5193ca294ce868ca59c54a289be57dafa95efb8c.tar.gz
gentoo-2-5193ca294ce868ca59c54a289be57dafa95efb8c.tar.bz2
gentoo-2-5193ca294ce868ca59c54a289be57dafa95efb8c.zip
Security update
Diffstat (limited to 'dev-libs/dietlibc')
-rw-r--r--dev-libs/dietlibc/ChangeLog7
-rw-r--r--dev-libs/dietlibc/dietlibc-0.22-r1.ebuild44
-rw-r--r--dev-libs/dietlibc/dietlibc-0.22.ebuild4
-rw-r--r--dev-libs/dietlibc/files/dietlibc-0.22_xdr_security_fix.patch195
-rw-r--r--dev-libs/dietlibc/files/digest-dietlibc-0.22-r11
5 files changed, 248 insertions, 3 deletions
diff --git a/dev-libs/dietlibc/ChangeLog b/dev-libs/dietlibc/ChangeLog
index 4951a66d93dc..dc6944bdba9a 100644
--- a/dev-libs/dietlibc/ChangeLog
+++ b/dev-libs/dietlibc/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for dev-libs/dietlibc
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/ChangeLog,v 1.10 2003/03/28 22:59:21 gmsoft Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/ChangeLog,v 1.11 2003/03/31 10:45:10 aliz Exp $
+
+*dietlibc-0.22-r1 (30 Mar 2003)
+
+ 30 Mar 2003; Daniel Ahlberg <aliz@gentoo.org> dietlibc-0.22-r1.ebuild :
+ Forgot to apply a patch. Applied patch is from Debian's dietblic-0.22-2 release.
*dietlibc-0.22 (28 Mar 2003)
diff --git a/dev-libs/dietlibc/dietlibc-0.22-r1.ebuild b/dev-libs/dietlibc/dietlibc-0.22-r1.ebuild
new file mode 100644
index 000000000000..f3d0c13487f5
--- /dev/null
+++ b/dev-libs/dietlibc/dietlibc-0.22-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/dietlibc-0.22-r1.ebuild,v 1.1 2003/03/31 10:45:10 aliz Exp $
+
+inherit eutils
+
+DESCRIPTION="A minimal libc"
+SRC_URI="http://www.kernel.org/pub/linux/libs/dietlibc/${P}.tar.bz2"
+HOMEPAGE="http://www.fefe.de/dietlibc/"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="x86 sparc hppa"
+
+src_unpack() {
+ unpack ${A} ; cd ${S}
+
+ epatch ${FILESDIR}/${P}_xdr_security_fix.patch
+
+ mv Makefile Makefile.orig
+
+ sed -e "s:^CFLAGS.*:CFLAGS = ${CFLAGS}:" \
+ -e "s:^prefix.*:prefix=/usr/diet:" \
+ -e "s:^#DESTDIR=/tmp/fef.*:DESTDIR=${D}:" \
+ Makefile.orig > Makefile
+ # does not say anything about this in the install docs - uncommenting (Thilo)
+ #mkdir ${S}/include/asm
+ #cp /usr/include/asm/posix_types.h ${S}/include/asm
+}
+
+src_compile() {
+ emake || die
+}
+
+src_install() {
+ make install || die
+
+ exeinto /usr/bin
+# newexe bin-i386/diet-i diet
+ newexe bin-$(uname -m | sed -e 's/i[4-9]86/i386/' -e 's/armv[3-6][lb]/arm/')/diet-i diet
+
+ doman diet.1
+ dodoc AUTHOR BUGS CAVEAT CHANGES README THANKS TODO PORTING
+}
diff --git a/dev-libs/dietlibc/dietlibc-0.22.ebuild b/dev-libs/dietlibc/dietlibc-0.22.ebuild
index 166397dc8c65..08da4294517a 100644
--- a/dev-libs/dietlibc/dietlibc-0.22.ebuild
+++ b/dev-libs/dietlibc/dietlibc-0.22.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/dietlibc-0.22.ebuild,v 1.3 2003/03/31 08:28:24 aliz Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/dietlibc-0.22.ebuild,v 1.4 2003/03/31 10:45:10 aliz Exp $
DESCRIPTION="A minimal libc"
SRC_URI="http://www.kernel.org/pub/linux/libs/dietlibc/${P}.tar.bz2"
@@ -8,7 +8,7 @@ HOMEPAGE="http://www.fefe.de/dietlibc/"
SLOT="0"
LICENSE="GPL-2"
-KEYWORDS="x86 sparc hppa"
+KEYWORDS="~x86 ~sparc ~hppa"
src_unpack() {
unpack ${A} ; cd ${S}
diff --git a/dev-libs/dietlibc/files/dietlibc-0.22_xdr_security_fix.patch b/dev-libs/dietlibc/files/dietlibc-0.22_xdr_security_fix.patch
new file mode 100644
index 000000000000..392eb8201be1
--- /dev/null
+++ b/dev-libs/dietlibc/files/dietlibc-0.22_xdr_security_fix.patch
@@ -0,0 +1,195 @@
+Index: include/rpc/xdr.h
+===================================================================
+RCS file: /cvs/linuxtv/dietlibc/include/rpc/xdr.h,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- include/rpc/xdr.h 26 Jun 2001 15:27:43 -0000 1.4
++++ include/rpc/xdr.h 21 Mar 2003 21:01:04 -0000 1.5
+@@ -126,7 +126,7 @@
+ /* returns bytes off from beginning */
+ bool_t (*x_setpostn) (XDR *__xdrs, unsigned int __pos);
+ /* lets you reposition the stream */
+- int32_t *(*x_inline) (XDR *__xdrs, int __len);
++ int32_t *(*x_inline) (XDR *__xdrs, unsigned int __len);
+ /* buf quick ptr to buffered data */
+ void (*x_destroy) (XDR *__xdrs);
+ /* free privates of this xdr_stream */
+@@ -139,7 +139,7 @@
+ char* x_public; /* users' data */
+ char* x_private; /* pointer to private data */
+ char* x_base; /* private used for position info */
+- int x_handy; /* extra private word */
++ unsigned int x_handy; /* extra private word */
+ };
+
+ /*
+Index: librpc/xdr_mem.c
+===================================================================
+RCS file: /cvs/linuxtv/dietlibc/librpc/xdr_mem.c,v
+retrieving revision 1.5
+retrieving revision 1.6
+diff -u -r1.5 -r1.6
+--- librpc/xdr_mem.c 23 Feb 2002 23:08:21 -0000 1.5
++++ librpc/xdr_mem.c 21 Mar 2003 21:01:04 -0000 1.6
+@@ -48,13 +48,13 @@
+ #include <netinet/in.h>
+ #include <string.h>
+
+-static bool_t xdrmem_getlong();
+-static bool_t xdrmem_putlong();
++static bool_t xdrmem_getlong(XDR*, long*);
++static bool_t xdrmem_putlong(XDR*, const long*);
+ static bool_t xdrmem_getbytes();
+ static bool_t xdrmem_putbytes();
+ static unsigned int xdrmem_getpos();
+ static bool_t xdrmem_setpos();
+-static int32_t *xdrmem_inline();
++static int32_t *xdrmem_inline(XDR*, unsigned int);
+ static void xdrmem_destroy();
+
+ static struct xdr_ops xdrmem_ops = {
+@@ -95,54 +95,41 @@
+ register XDR *xdrs;
+ long *lp;
+ {
++ if (xdrs->x_handy < 4) return FALSE;
++ xdrs->x_handy -= 4;
+
+- if ((xdrs->x_handy -= sizeof(long)) < 0)
+- return (FALSE);
+-
+- *lp = (long) ntohl((unsigned long) (*((long *) (xdrs->x_private))));
+- xdrs->x_private += sizeof(long);
+-
+- return (TRUE);
++ *lp = (int32_t) ntohl((*((int32_t *) (xdrs->x_private))));
++ xdrs->x_private += 4;
++ return TRUE;
+ }
+
+-static bool_t xdrmem_putlong(xdrs, lp)
+-register XDR *xdrs;
+-long *lp;
++static bool_t xdrmem_putlong(XDR* xdrs, const long* lp)
+ {
++ if (xdrs->x_handy < 4) return FALSE;
++ xdrs->x_handy -= 4;
+
+- if ((xdrs->x_handy -= sizeof(long)) < 0)
+- return (FALSE);
+-
+- *(long *) xdrs->x_private = (long) htonl((unsigned long) (*lp));
+- xdrs->x_private += sizeof(long);
++ *(int32_t *) xdrs->x_private = htonl(*lp);
++ xdrs->x_private += sizeof(long);
+
+- return (TRUE);
++ return (TRUE);
+ }
+
+-static bool_t xdrmem_getbytes(xdrs, addr, len)
+-register XDR *xdrs;
+-char* addr;
+-register unsigned int len;
++static bool_t xdrmem_getbytes(XDR* xdrs, char* addr, unsigned int len)
+ {
+-
+- if ((xdrs->x_handy -= len) < 0)
+- return (FALSE);
+- memmove(addr, xdrs->x_private, len);
+- xdrs->x_private += len;
+- return (TRUE);
++ if (xdrs->x_handy < len) return FALSE;
++ xdrs->x_handy -= len;
++ memmove(addr, xdrs->x_private, len);
++ xdrs->x_private += len;
++ return TRUE;
+ }
+
+-static bool_t xdrmem_putbytes(xdrs, addr, len)
+-register XDR *xdrs;
+-char* addr;
+-register unsigned int len;
++static bool_t xdrmem_putbytes(XDR* xdrs, char* addr, unsigned int len)
+ {
+-
+- if ((xdrs->x_handy -= len) < 0)
+- return (FALSE);
+- memmove(xdrs->x_private, addr, len);
+- xdrs->x_private += len;
+- return (TRUE);
++ if (xdrs->x_handy < len) return FALSE;
++ xdrs->x_handy -= len;
++ memmove(xdrs->x_private, addr, len);
++ xdrs->x_private += len;
++ return (TRUE);
+ }
+
+ static unsigned int xdrmem_getpos(xdrs)
+@@ -156,19 +143,19 @@
+ register XDR *xdrs;
+ unsigned int pos;
+ {
+- register char* newaddr = xdrs->x_base + pos;
+- register char* lastaddr = xdrs->x_private + xdrs->x_handy;
++ register char* newaddr = xdrs->x_base + pos;
++ register char* lastaddr = xdrs->x_private + xdrs->x_handy;
+
+- if ((long) newaddr > (long) lastaddr)
+- return (FALSE);
+- xdrs->x_private = newaddr;
+- xdrs->x_handy = (int) lastaddr - (int) newaddr;
+- return (TRUE);
++ if ((long) newaddr > (long) lastaddr || (long)newaddr<(long)xdrs->x_base)
++ return (FALSE);
++ xdrs->x_private = newaddr;
++ xdrs->x_handy = (int) lastaddr - (int) newaddr;
++ return (TRUE);
+ }
+
+ static int32_t *xdrmem_inline(xdrs, len)
+ register XDR *xdrs;
+-int len;
++unsigned int len;
+ {
+ int32_t *buf = 0;
+
+Index: librpc/xdr_rec.c
+===================================================================
+RCS file: /cvs/linuxtv/dietlibc/librpc/xdr_rec.c,v
+retrieving revision 1.6
+retrieving revision 1.7
+diff -u -r1.6 -r1.7
+--- librpc/xdr_rec.c 23 Feb 2002 23:08:21 -0000 1.6
++++ librpc/xdr_rec.c 21 Mar 2003 21:01:04 -0000 1.7
+@@ -459,9 +459,7 @@
+ return (FALSE);
+ }
+
+-static int32_t *xdrrec_inline(xdrs, len)
+-register XDR *xdrs;
+-int len;
++static int32_t *xdrrec_inline(XDR* xdrs, unsigned int len)
+ {
+ register RECSTREAM *rstrm = (RECSTREAM *) xdrs->x_private;
+ int32_t *buf = NULL;
+Index: librpc/xdr_stdio.c
+===================================================================
+RCS file: /cvs/linuxtv/dietlibc/librpc/xdr_stdio.c,v
+retrieving revision 1.4
+retrieving revision 1.5
+diff -u -r1.4 -r1.5
+--- librpc/xdr_stdio.c 23 Feb 2002 23:08:21 -0000 1.4
++++ librpc/xdr_stdio.c 21 Mar 2003 21:01:04 -0000 1.5
+@@ -170,9 +170,7 @@
+ FALSE : TRUE);
+ }
+
+-static int32_t *xdrstdio_inline(xdrs, len)
+-XDR *xdrs;
+-unsigned int len;
++static int32_t *xdrstdio_inline(XDR* xdrs, unsigned int len)
+ {
+
+ /*
diff --git a/dev-libs/dietlibc/files/digest-dietlibc-0.22-r1 b/dev-libs/dietlibc/files/digest-dietlibc-0.22-r1
new file mode 100644
index 000000000000..d80396c5cefb
--- /dev/null
+++ b/dev-libs/dietlibc/files/digest-dietlibc-0.22-r1
@@ -0,0 +1 @@
+MD5 877b12ab0b2bbff340095cf2cf074418 dietlibc-0.22.tar.bz2 454012