Loading...
--- Libc/Libc-391/db/hash/FreeBSD/hash.c.patch
+++ Libc/Libc-594.1.4/db/hash/FreeBSD/hash.c.patch
@@ -1,6 +1,6 @@
---- /Volumes/XDisk/tmp/Libc/db/hash/FreeBSD/hash.c.orig 2004-09-09 22:41:41.000000000 -0700
-+++ /Volumes/XDisk/tmp/Libc/db/hash/FreeBSD/hash.c 2004-10-24 17:08:27.000000000 -0700
-@@ -58,7 +58,7 @@
+--- hash.c.orig 2008-09-07 11:37:54.000000000 -0700
++++ hash.c 2008-09-07 12:42:15.000000000 -0700
+@@ -58,7 +58,7 @@ __FBSDID("$FreeBSD: src/lib/libc/db/hash
#include <db.h>
#include "hash.h"
#include "page.h"
@@ -9,3 +9,22 @@
static int alloc_segs(HTAB *, int);
static int flush_meta(HTAB *);
+@@ -108,8 +108,7 @@ __hash_open(file, flags, mode, info, dfl
+ int bpages, hdrsize, new_table, nsegs, save_errno;
+
+ if ((flags & O_ACCMODE) == O_WRONLY) {
+- errno = EINVAL;
+- return (NULL);
++ flags += O_RDWR - O_WRONLY; /* POSIX */
+ }
+
+ if (!(hashp = (HTAB *)calloc(1, sizeof(HTAB))))
+@@ -722,7 +721,7 @@ found:
+ return (ERROR);
+ break;
+ default:
+- abort();
++ LIBC_ABORT("illegal action (%d)", action);
+ }
+ save_bufp->flags &= ~BUF_PIN;
+ return (SUCCESS);