diff options
Diffstat (limited to 'testing/libtirpc')
-rw-r--r-- | testing/libtirpc/PKGBUILD | 32 | ||||
-rw-r--r-- | testing/libtirpc/libtirpc-0.2.1-fortify.patch | 18 |
2 files changed, 50 insertions, 0 deletions
diff --git a/testing/libtirpc/PKGBUILD b/testing/libtirpc/PKGBUILD new file mode 100644 index 000000000..b222249ff --- /dev/null +++ b/testing/libtirpc/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 121179 2011-04-29 06:50:46Z stephane $ +# Maintainer: Tobias Powalowski <tpowa@archlinux.org> +pkgname=libtirpc +pkgver=0.2.1 +pkgrel=3 +pkgdesc="Transport Independent RPC library (SunRPC replacement)" +arch=(i686 x86_64) +depends=('glibc' 'libgssglue' 'krb5') +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 +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + # install netconfig + install -D -m644 doc/etc_netconfig "${pkgdir}"/etc/netconfig +} +md5sums=('d77eb15f464bf9d6e66259eaf78b2a4e' + '2e5c067f1651469dfbbdc91d3c9c60e8') diff --git a/testing/libtirpc/libtirpc-0.2.1-fortify.patch b/testing/libtirpc/libtirpc-0.2.1-fortify.patch new file mode 100644 index 000000000..7375bf83e --- /dev/null +++ b/testing/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, |