summaryrefslogtreecommitdiff
path: root/multilib/lib32-krb5
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-12-20 23:14:59 +0000
committerroot <root@rshg054.dnsready.net>2011-12-20 23:14:59 +0000
commitea1f4bece8870857691a7123bdc899562760b3fe (patch)
treeb332a0692c3e63d46cb60cb1214fc57871e619c8 /multilib/lib32-krb5
parent6d2dec5c3443d142a0131c43666929490961c16a (diff)
Tue Dec 20 23:14:59 UTC 2011
Diffstat (limited to 'multilib/lib32-krb5')
-rw-r--r--multilib/lib32-krb5/PKGBUILD13
-rw-r--r--multilib/lib32-krb5/krb5-1.9.1-2011-007.patch40
2 files changed, 50 insertions, 3 deletions
diff --git a/multilib/lib32-krb5/PKGBUILD b/multilib/lib32-krb5/PKGBUILD
index 32debcbae..1b70b9d2b 100644
--- a/multilib/lib32-krb5/PKGBUILD
+++ b/multilib/lib32-krb5/PKGBUILD
@@ -4,7 +4,7 @@
_pkgbasename=krb5
pkgname=lib32-$_pkgbasename
-pkgver=1.9.1
+pkgver=1.9.2
pkgrel=1
pkgdesc="The Kerberos network authentication system (32-bit)"
arch=('x86_64')
@@ -15,14 +15,21 @@ makedepends=('perl' gcc-multilib)
provides=('lib32-heimdal')
replaces=('lib32-heimdal')
conflicts=('lib32-heimdal')
-source=(http://web.mit.edu/kerberos/dist/${_pkgbasename}/1.9/${_pkgbasename}-${pkgver}-signed.tar)
-sha1sums=('e23a1795a237521493da9cf3443ac8b98a90c066')
+source=(http://web.mit.edu/kerberos/dist/${_pkgbasename}/1.9/${_pkgbasename}-${pkgver}-signed.tar
+krb5-1.9.1-2011-007.patch)
+sha1sums=('aa06f778ee1f9791cd4c5cf4c9e9465769ffec92'
+ '31a130542e92b70c807b2dbe6f9b182dc14f5e9f')
options=('!emptydirs')
build() {
tar zxvf ${_pkgbasename}-${pkgver}.tar.gz
cd "${srcdir}/${_pkgbasename}-${pkgver}/src"
+ # Apply upstream patch to fix a null pointer dereference when processing TGS requests
+ # CVE-2011-1530
+ # see http://web.mit.edu/kerberos/advisories/MITKRB5-SA-2011-007.txt
+ patch -Np2 -i ${srcdir}/krb5-1.9.1-2011-007.patch
+
export CC="gcc -m32"
export CXX="g++ -m32"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
diff --git a/multilib/lib32-krb5/krb5-1.9.1-2011-007.patch b/multilib/lib32-krb5/krb5-1.9.1-2011-007.patch
new file mode 100644
index 000000000..f1ffdd4d1
--- /dev/null
+++ b/multilib/lib32-krb5/krb5-1.9.1-2011-007.patch
@@ -0,0 +1,40 @@
+diff --git a/src/kdc/Makefile.in b/src/kdc/Makefile.in
+index f46cad3..102fbaa 100644
+--- a/src/kdc/Makefile.in
++++ b/src/kdc/Makefile.in
+@@ -67,6 +67,7 @@ check-unix:: rtest
+
+ check-pytests::
+ $(RUNPYTEST) $(srcdir)/t_workers.py $(PYTESTFLAGS)
++ $(RUNPYTEST) $(srcdir)/t_emptytgt.py $(PYTESTFLAGS)
+
+ install::
+ $(INSTALL_PROGRAM) krb5kdc ${DESTDIR}$(SERVER_BINDIR)/krb5kdc
+diff --git a/src/kdc/do_tgs_req.c b/src/kdc/do_tgs_req.c
+index c169c54..840a2ef 100644
+--- a/src/kdc/do_tgs_req.c
++++ b/src/kdc/do_tgs_req.c
+@@ -243,7 +243,8 @@ tgt_again:
+ if (!tgs_1 || !data_eq(*server_1, *tgs_1)) {
+ errcode = find_alternate_tgs(request, &server);
+ firstpass = 0;
+- goto tgt_again;
++ if (errcode == 0)
++ goto tgt_again;
+ }
+ }
+ status = "UNKNOWN_SERVER";
+diff --git a/src/kdc/t_emptytgt.py b/src/kdc/t_emptytgt.py
+new file mode 100644
+index 0000000..1760bcd
+--- /dev/null
++++ b/src/kdc/t_emptytgt.py
+@@ -0,0 +1,8 @@
++#!/usr/bin/python
++from k5test import *
++
++realm = K5Realm(start_kadmind=False, create_host=False)
++output = realm.run_as_client([kvno, 'krbtgt/'], expected_code=1)
++if 'not found in Kerberos database' not in output:
++ fail('TGT lookup for empty realm failed in unexpected way')
++success('Empty tgt lookup.')