summaryrefslogtreecommitdiff
path: root/community/bsd-games
diff options
context:
space:
mode:
Diffstat (limited to 'community/bsd-games')
-rw-r--r--community/bsd-games/PKGBUILD19
-rw-r--r--community/bsd-games/bad-ntohl-cast.diff22
-rw-r--r--community/bsd-games/null-check.diff24
3 files changed, 59 insertions, 6 deletions
diff --git a/community/bsd-games/PKGBUILD b/community/bsd-games/PKGBUILD
index 68e93182f..470e8a2f0 100644
--- a/community/bsd-games/PKGBUILD
+++ b/community/bsd-games/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 72260 2012-06-11 12:32:05Z cbrannon $
+# $Id: PKGBUILD 73816 2012-07-15 23:02:25Z cbrannon $
# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
pkgname=bsd-games
pkgver=2.17
-pkgrel=12
+pkgrel=13
pkgdesc="A linux port for a collection of BSD command line games."
url="ftp://ftp.ibiblio.org/pub/Linux/games/"
arch=('i686' 'x86_64')
@@ -13,9 +13,10 @@ install=$pkgname.install
license=('BSD')
depends=(gcc-libs words sh)
makedepends=('flex' 'bison' 'm4')
-source=(ftp://ftp.ibiblio.org/pub/Linux/games/$pkgname-$pkgver.tar.gz \
- config.params stdio.h.diff gamescreen.h.diff getline.diff
- number.c.diff bsd-games-2.17-64bit.patch)
+source=(ftp://ftp.ibiblio.org/pub/Linux/games/$pkgname-$pkgver.tar.gz
+ config.params stdio.h.diff gamescreen.h.diff getline.diff
+ number.c.diff bsd-games-2.17-64bit.patch
+ bad-ntohl-cast.diff null-check.diff)
build() {
cd "${srcdir}/$pkgname-$pkgver"
@@ -36,6 +37,10 @@ build() {
# Incorporated some fixes from Debian
patch -p1 -i "${srcdir}/number.c.diff"
+# ntohl returns uint32_t, not unsigned long:
+ patch -p1 -i "${srcdir}/bad-ntohl-cast.diff"
+# And add a NULL pointer check to the "hunt" program, fixing a segfault.
+ patch -p1 -i "${srcdir}/null-check.diff"
sed -i "s/FISH/GO-FISH/g; s/\.Nm fish/\.Nm go-fish/g" fish/fish.6
sed -i "s/tenths/tenth/g" tests/number.-0.1
@@ -92,4 +97,6 @@ md5sums=('238a38a3a017ca9b216fc42bde405639'
'9c0fa6e2345bd0a7945c9a41d5ba68aa'
'5356bd6999ae53dd27cb2a0f837a3e70'
'47249a90f38ccb4dd07625b245bbc728'
- '257813b76a41c8b2c02701571c804227')
+ '257813b76a41c8b2c02701571c804227'
+ '3d21a9dad2e603ddf3842972e4ff85a1'
+ 'a43ca0b4b9ebc4eec26372c52014ac0a')
diff --git a/community/bsd-games/bad-ntohl-cast.diff b/community/bsd-games/bad-ntohl-cast.diff
new file mode 100644
index 000000000..f783813e9
--- /dev/null
+++ b/community/bsd-games/bad-ntohl-cast.diff
@@ -0,0 +1,22 @@
+diff --git a/hunt/hunt/playit.c b/hunt/hunt/playit.c
+index 9acf86e..881a4e7 100644
+--- a/hunt/hunt/playit.c
++++ b/hunt/hunt/playit.c
+@@ -114,7 +114,7 @@ playit()
+ bad_con();
+ /* NOTREACHED */
+ }
+- if (ntohl(version) != (unsigned long)HUNT_VERSION) {
++ if (ntohl(version) != (uint32_t)HUNT_VERSION) {
+ bad_ver();
+ /* NOTREACHED */
+ }
+@@ -649,7 +649,7 @@ do_message()
+ bad_con();
+ /* NOTREACHED */
+ }
+- if (ntohl(version) != (unsigned long)HUNT_VERSION) {
++ if (ntohl(version) != (uint32_t)HUNT_VERSION) {
+ bad_ver();
+ /* NOTREACHED */
+ }
diff --git a/community/bsd-games/null-check.diff b/community/bsd-games/null-check.diff
new file mode 100644
index 000000000..048ed93f4
--- /dev/null
+++ b/community/bsd-games/null-check.diff
@@ -0,0 +1,24 @@
+diff --git a/hunt/hunt/hunt.c b/hunt/hunt/hunt.c
+index 11f4c44..28321bc 100644
+--- a/hunt/hunt/hunt.c
++++ b/hunt/hunt/hunt.c
+@@ -394,7 +394,8 @@ broadcast_vec(s, vector)
+
+ vec_cnt = 0;
+ for (ip = ifp; ip; ip = ip->ifa_next)
+- if ((ip->ifa_addr->sa_family == AF_INET) &&
++ if (ip->ifa_addr &&
++ (ip->ifa_addr->sa_family == AF_INET) &&
+ (ip->ifa_flags & IFF_BROADCAST))
+ vec_cnt++;
+
+@@ -405,7 +406,8 @@ broadcast_vec(s, vector)
+
+ vec_cnt = 0;
+ for (ip = ifp; ip; ip = ip->ifa_next)
+- if ((ip->ifa_addr->sa_family == AF_INET) &&
++ if (ip->ifa_addr &&
++ (ip->ifa_addr->sa_family == AF_INET) &&
+ (ip->ifa_flags & IFF_BROADCAST))
+ memcpy(&(*vector)[vec_cnt++], ip->ifa_broadaddr,
+ sizeof(struct sockaddr_in));