From 415856bdd4f48ab4f2732996f0bae58595092bbe Mon Sep 17 00:00:00 2001 From: Parabola Date: Tue, 5 Apr 2011 14:26:38 +0000 Subject: Tue Apr 5 14:26:38 UTC 2011 --- core/libtirpc/PKGBUILD | 28 ++++++++++++++++++++++++++++ core/libtirpc/libtirpc-0.2.1-fortify.patch | 18 ++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 core/libtirpc/PKGBUILD create mode 100644 core/libtirpc/libtirpc-0.2.1-fortify.patch (limited to 'core/libtirpc') diff --git a/core/libtirpc/PKGBUILD b/core/libtirpc/PKGBUILD new file mode 100644 index 000000000..952640dcb --- /dev/null +++ b/core/libtirpc/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 97756 2010-11-01 19:49:14Z tpowa $ +# Maintainer: Tobias Powalowski +pkgname=libtirpc +pkgver=0.2.1 +pkgrel=2 +pkgdesc="Transport Independent RPC library (SunRPC replacement)" +arch=(i686 x86_64) +depends=('glibc' 'libgssglue' 'heimdal') +url="http://libtirpc.sourceforge.net/" +license=('GPL2') +source=(http://downloads.sourceforge.net/sourceforge/libtirpc/$pkgname-$pkgver.tar.bz2 + libtirpc-0.2.1-fortify.patch) +backup=('etc/netconfig') +options=(!libtool) + +build() { + cd $srcdir/$pkgname-$pkgver + # fix http://bugs.gentoo.org/293593 + # https://bugs.archlinux.org/task/20082 + patch -Np1 -i ../libtirpc-0.2.1-fortify.patch + ./configure --prefix=/usr --enable-gss + make || return 1 + make DESTDIR=$pkgdir install || return 1 + # install netconfig + install -D -m644 doc/etc_netconfig $pkgdir/etc/netconfig +} +md5sums=('d77eb15f464bf9d6e66259eaf78b2a4e' + '2e5c067f1651469dfbbdc91d3c9c60e8') diff --git a/core/libtirpc/libtirpc-0.2.1-fortify.patch b/core/libtirpc/libtirpc-0.2.1-fortify.patch new file mode 100644 index 000000000..7375bf83e --- /dev/null +++ b/core/libtirpc/libtirpc-0.2.1-fortify.patch @@ -0,0 +1,18 @@ +Index: libtirpc-0.2.1/src/getrpcport.c +=================================================================== +--- libtirpc-0.2.1.orig/src/getrpcport.c ++++ libtirpc-0.2.1/src/getrpcport.c +@@ -54,11 +54,11 @@ getrpcport(host, prognum, versnum, proto + + if ((hp = gethostbyname(host)) == NULL) + return (0); ++ if (hp->h_length != sizeof(addr.sin_addr.s_addr)) ++ return (0); + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = 0; +- if (hp->h_length > sizeof(addr)) +- hp->h_length = sizeof(addr); + memcpy(&addr.sin_addr.s_addr, hp->h_addr, (size_t)hp->h_length); + /* Inconsistent interfaces need casts! :-( */ + return (pmap_getport(&addr, (u_long)prognum, (u_long)versnum, -- cgit v1.2.3-54-g00ecf