[arch-commits] Commit in xbill/trunk (PKGBUILD xbill-wrapper.c)

Eric Bélanger eric at archlinux.org
Tue Dec 23 06:10:49 UTC 2008


    Date: Tuesday, December 23, 2008 @ 01:10:49
  Author: eric
Revision: 22211

upgpkg: xbill 2.1-6
    Switched from gtk to athena toolkit. This removed the need of the wrapper script that introduced a security hazard (close FS#12484).

Modified:
  xbill/trunk/PKGBUILD
Deleted:
  xbill/trunk/xbill-wrapper.c

-----------------+
 PKGBUILD        |   19 +++++-------
 xbill-wrapper.c |   82 ------------------------------------------------------
 2 files changed, 8 insertions(+), 93 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2008-12-23 05:57:24 UTC (rev 22210)
+++ PKGBUILD	2008-12-23 06:10:49 UTC (rev 22211)
@@ -4,30 +4,27 @@
 
 pkgname=xbill
 pkgver=2.1
-pkgrel=5
+pkgrel=6
 pkgdesc="Xbill is a game that tests you reflexes as you seek and destroy all forms of Bill"
 arch=('i686' 'x86_64')
 url="http://www.xbill.org/"
 license=('GPL')
-depends=('gtk' 'xaw3d>=1.5E' 'lesstif')
-makedepends=('libxaw')
+depends=('xaw3d>=1.5E' 'libxaw')
 install=xbill.install
-source=(http://www.xbill.org/download/$pkgname-$pkgver.tar.gz xbill-wrapper.c)
-md5sums=('585e4866b15255a24203db9959407b2f' '9f299e482623999b03ce7585413bc182')
+source=(http://www.xbill.org/download/$pkgname-$pkgver.tar.gz)
+md5sums=('585e4866b15255a24203db9959407b2f')
 
 build() {
   cd $srcdir/$pkgname-$pkgver
-  ./configure --prefix=/usr --mandir=/usr/share/man --localstatedir=/var/games || return 1
+  ./configure --prefix=/usr --mandir=/usr/share/man --localstatedir=/var/games \
+  --disable-motif  --enable-athena --disable-gtk || return 1
   make || return 1
   make DESTDIR=$pkgdir install || return 1
 
-# Build wrapper script from Slackware to use setgid for score file
-  mv $pkgdir/usr/bin/xbill $pkgdir/usr/bin/xbill-bin
-  gcc -Wall ../xbill-wrapper.c -o $pkgdir/usr/bin/xbill || return 1
-
 # set appropriate permissions and destinations
   chown root:games $pkgdir/usr/bin/xbill
-  chmod 4755 $pkgdir/usr/bin/xbill
+  chmod 2755 $pkgdir/usr/bin/xbill
+
   chown root:games $pkgdir/var/games
   chmod 775 $pkgdir/var/games
   chown root:games $pkgdir/var/games/xbill

Deleted: xbill-wrapper.c
===================================================================
--- xbill-wrapper.c	2008-12-23 05:57:24 UTC (rev 22210)
+++ xbill-wrapper.c	2008-12-23 06:10:49 UTC (rev 22211)
@@ -1,82 +0,0 @@
-/* Written by Menno E. Duursma for use with xbill */
-
-/*
- * This program is free software. It comes without any warranty.
- * Granted WTFPL, Version 2, as published by Sam Hocevar. See
- * http://sam.zoy.org/wtfpl/COPYING for more details.
- */
-
-/*
- * Per default xbill sets its score file world writable
- * which obviously allows cheating ones hi-score :-(
- * Probably this came about since GTK+ doesn't allow setgid?
- * 
- * In the install-script we move xbill to xbill-bin and install
- * this here wrapper thing as xbill, with setuid and video group
- * executable filesystem perms. Here we change groups to games.
- *
- * We should now be able make /var/xbill group-writable only...
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <grp.h>
-
-int main(int argc, char *argv[], char *envp[])
-{
-
-	/*
-         * hardcoded path/program to exec
-	 * and group to run under
-	 */
-        char prog[] = "/usr/bin/xbill-bin";
-	char grpname[] = "games";
-
-	struct group *grp;
-	errno = 0;
-
-	/* get our gid */
-	grp = getgrnam(grpname);
-	if (grp == NULL) {
-		fprintf(stderr, "Error: getgrnam(%s) - %s\n",
-			grpname,
-			strerror(errno));
-		exit(EXIT_FAILURE);
-	}
-
-	/* drop to the gid */
-	if (setgid(grp->gr_gid)) {
-		fprintf(stderr, "Error: setgid(%d) - %s\n",
-			grp->gr_gid,
-			strerror(errno));
-		exit(EXIT_FAILURE);
-	}
-		
-
-        /* drop back to calling uid */
-	if (setuid(getuid())) {
-		fprintf(stderr, "Error: setuid(%d) - %s\n",
-			getuid(),
-			strerror(errno));
-		exit(EXIT_FAILURE);
-		}
-
-        /* tell the viewers wat is going to happen */
-        fprintf(stderr, "Starting %s with uid = %d, gid = %d\n",
-		prog,
-		getuid(),
-		getgid());
-
-	/* fire it up */
-	if (execve(prog, argv, envp) == -1) {
-		fprintf(stderr, "Error: execve(%s, argv, envp) - %s\n",
-			prog,
-			strerror(errno));
-		exit(EXIT_FAILURE);
-	}
-
-	return EXIT_SUCCESS;
-}




More information about the arch-commits mailing list