X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/9430ba5b3692e61b8f841adb1754b2c327c2fd85..9d1775c515c3381957c801b3de57c9b282668dac:/dbm_map.c diff --git a/dbm_map.c b/dbm_map.c index ddcb032c..87c085d2 100644 --- 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 * @@ -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