aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mandocdb.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-08-26 20:38:14 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-08-26 20:38:14 +0000
commitfe44058c81ed6d8a6eaf0e99aafdd57d9d2df9cf (patch)
tree364acc01b59f16331d8f322c6d5852809b5136e4 /mandocdb.c
parentafc45099796ef993531edb38243a35e0e65a03f2 (diff)
downloadmandoc-fe44058c81ed6d8a6eaf0e99aafdd57d9d2df9cf.tar.gz
mandoc-fe44058c81ed6d8a6eaf0e99aafdd57d9d2df9cf.tar.zst
mandoc-fe44058c81ed6d8a6eaf0e99aafdd57d9d2df9cf.zip
Fix previous: mmap(2) returns MAP_FAILED on failure, not NULL.
Bug pointed out by tedu@.
Diffstat (limited to 'mandocdb.c')
-rw-r--r--mandocdb.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mandocdb.c b/mandocdb.c
index 1a4ff107..54675c69 100644
--- a/mandocdb.c
+++ b/mandocdb.c
@@ -1,4 +1,4 @@
-/* $Id: mandocdb.c,v 1.255 2017/08/26 15:55:46 schwarze Exp $ */
+/* $Id: mandocdb.c,v 1.256 2017/08/26 20:38:14 schwarze Exp $ */
/*
* Copyright (c) 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -2152,7 +2152,7 @@ dbwrite(struct dba *dba)
say("", "&%s", tfn);
return;
}
- cp1 = cp2 = NULL;
+ cp1 = cp2 = MAP_FAILED;
fd1 = fd2 = -1;
(void)strlcat(tfn, "/" MANDOC_DB, sizeof(tfn));
if (dba_write(tfn, dba) == -1) {
@@ -2178,12 +2178,12 @@ dbwrite(struct dba *dba)
if (sb1.st_size != sb2.st_size)
goto err;
if ((cp1 = mmap(NULL, sb1.st_size, PROT_READ, MAP_PRIVATE,
- fd1, 0)) == NULL) {
+ fd1, 0)) == MAP_FAILED) {
say(MANDOC_DB, "&mmap");
goto err;
}
if ((cp2 = mmap(NULL, sb2.st_size, PROT_READ, MAP_PRIVATE,
- fd2, 0)) == NULL) {
+ fd2, 0)) == MAP_FAILED) {
say(tfn, "&mmap");
goto err;
}
@@ -2197,9 +2197,9 @@ err:
say(MANDOC_DB, "Data changed, but cannot replace database");
out:
- if (cp1 != NULL)
+ if (cp1 != MAP_FAILED)
munmap(cp1, sb1.st_size);
- if (cp2 != NULL)
+ if (cp2 != MAP_FAILED)
munmap(cp2, sb2.st_size);
if (fd1 != -1)
close(fd1);