]> git.cameronkatri.com Git - mandoc.git/blobdiff - dbm_map.c
tiny update
[mandoc.git] / dbm_map.c
index ddcb032cdb1df10e780082432327c2eaffff0a0c..87c085d22ec18fcccfd4bd0ce674c8976fdc485e 100644 (file)
--- a/dbm_map.c
+++ b/dbm_map.c
@@ -1,4 +1,4 @@
-/*     $Id: dbm_map.c,v 1.4 2016/08/22 16:07:16 schwarze Exp $ */
+/*     $Id: dbm_map.c,v 1.8 2017/02/17 14:43:54 schwarze Exp $ */
 /*
  * Copyright (c) 2016 Ingo Schwarze <schwarze@openbsd.org>
  *
@@ -100,8 +100,8 @@ dbm_map(const char *fname)
        }
        max_offset = be32toh(*dbm_getint(3)) + sizeof(int32_t);
        if (st.st_size != max_offset) {
-               warnx("dbm_map(%s): Inconsistent file size %llu (expected %d)",
-                   fname, st.st_size, max_offset);
+               warnx("dbm_map(%s): Inconsistent file size %lld (expected %d)",
+                   fname, (long long)st.st_size, max_offset);
                errno = EFTYPE;
                goto fail;
        }
@@ -143,7 +143,11 @@ void *
 dbm_get(int32_t offset)
 {
        offset = be32toh(offset);
-       if (offset < 0 || offset >= max_offset) {
+       if (offset < 0) {
+               warnx("dbm_get: Database corrupt: offset %d", offset);
+               return NULL;
+       }
+       if (offset >= max_offset) {
                warnx("dbm_get: Database corrupt: offset %d > %d",
                    offset, max_offset);
                return NULL;
@@ -171,7 +175,7 @@ dbm_getint(int32_t offset)
 int32_t
 dbm_addr(const void *p)
 {
-       return htobe32((char *)p - dbm_base);
+       return htobe32((const char *)p - dbm_base);
 }
 
 int