svn commit: r190344 - head/lib/libc/db/btree
Xin LI
delphij at FreeBSD.org
Mon Mar 23 16:43:09 PDT 2009
Author: delphij
Date: Mon Mar 23 23:43:07 2009
New Revision: 190344
URL: http://svn.freebsd.org/changeset/base/190344
Log:
Save errno before calling _close(), which may clear it.
Obtained from: OpenBSD
Modified:
head/lib/libc/db/btree/bt_open.c
Modified: head/lib/libc/db/btree/bt_open.c
==============================================================================
--- head/lib/libc/db/btree/bt_open.c Mon Mar 23 23:32:20 2009 (r190343)
+++ head/lib/libc/db/btree/bt_open.c Mon Mar 23 23:43:07 2009 (r190344)
@@ -96,7 +96,7 @@ __bt_open(const char *fname, int flags,
DB *dbp;
pgno_t ncache;
ssize_t nr;
- int machine_lorder;
+ int machine_lorder, saved_errno;
t = NULL;
@@ -327,13 +327,15 @@ einval: errno = EINVAL;
eftype: errno = EFTYPE;
goto err;
-err: if (t) {
+err: saved_errno = errno;
+ if (t) {
if (t->bt_dbp)
free(t->bt_dbp);
if (t->bt_fd != -1)
(void)_close(t->bt_fd);
free(t);
}
+ errno = saved_errno;
return (NULL);
}
More information about the svn-src-all
mailing list