diff options
author | Daniel Ahlberg <aliz@gentoo.org> | 2003-03-31 10:45:10 +0000 |
---|---|---|
committer | Daniel Ahlberg <aliz@gentoo.org> | 2003-03-31 10:45:10 +0000 |
commit | 5193ca294ce868ca59c54a289be57dafa95efb8c (patch) | |
tree | 344a0018d9c80588c4a1da0a8f8e4a03f3900c4d /dev-libs/dietlibc | |
parent | fixed pose breakage by disabling profiled version until something better can ... (diff) | |
download | gentoo-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/ChangeLog | 7 | ||||
-rw-r--r-- | dev-libs/dietlibc/dietlibc-0.22-r1.ebuild | 44 | ||||
-rw-r--r-- | dev-libs/dietlibc/dietlibc-0.22.ebuild | 4 | ||||
-rw-r--r-- | dev-libs/dietlibc/files/dietlibc-0.22_xdr_security_fix.patch | 195 | ||||
-rw-r--r-- | dev-libs/dietlibc/files/digest-dietlibc-0.22-r1 | 1 |
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 |