db/db.patch

Fri, 03 Aug 2012 20:11:53 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 03 Aug 2012 20:11:53 +0200
changeset 470
f8813e60f168
permissions
-rw-r--r--

Neutralize buggy code causing OpenPKG to have 'fatal problems' in
spite of correct installation, configuration, and operation. An
administrator suffering from this failure is even unable to
uninstall the flawed software.

michael@121 1 Index: mutex/mut_fcntl.c
michael@121 2 --- mutex/mut_fcntl.c.orig 2008-01-08 21:58:43 +0100
michael@121 3 +++ mutex/mut_fcntl.c 2008-05-26 22:36:45 +0200
michael@121 4 @@ -84,7 +84,7 @@
michael@121 5
michael@121 6 /* Acquire an exclusive kernel lock. */
michael@121 7 k_lock.l_type = F_WRLCK;
michael@121 8 - if (fcntl(env->lockfhp->fd, F_SETLKW, &k_lock))
michael@121 9 + if (fcntl(env->lockfhp->fd, F_SETLKW, &k_lock) == -1)
michael@121 10 goto err;
michael@121 11
michael@121 12 /* If the resource is still available, it's ours. */
michael@121 13 @@ -97,7 +97,7 @@
michael@121 14
michael@121 15 /* Release the kernel lock. */
michael@121 16 k_lock.l_type = F_UNLCK;
michael@121 17 - if (fcntl(env->lockfhp->fd, F_SETLK, &k_lock))
michael@121 18 + if (fcntl(env->lockfhp->fd, F_SETLK, &k_lock) == -1)
michael@121 19 goto err;
michael@121 20
michael@121 21 /*
michael@121 22 Index: os/os_open.c
michael@121 23 --- os/os_open.c.orig 2008-03-26 05:11:35 +0100
michael@121 24 +++ os/os_open.c 2008-05-26 22:36:05 +0200
michael@121 25 @@ -67,7 +67,7 @@
michael@121 26 if (LF_ISSET(DB_OSO_EXCL))
michael@121 27 oflags |= O_EXCL;
michael@121 28
michael@121 29 -#ifdef HAVE_O_DIRECT
michael@121 30 +#if defined(HAVE_O_DIRECT) && defined(__FreeBSD__)
michael@121 31 if (LF_ISSET(DB_OSO_DIRECT))
michael@121 32 oflags |= O_DIRECT;
michael@121 33 #endif

mercurial