version 1.4, 2016/08/22 16:07:16 |
version 1.6, 2016/10/20 16:12:56 |
Line 100 dbm_map(const char *fname) |
|
Line 100 dbm_map(const char *fname) |
|
} |
} |
max_offset = be32toh(*dbm_getint(3)) + sizeof(int32_t); |
max_offset = be32toh(*dbm_getint(3)) + sizeof(int32_t); |
if (st.st_size != max_offset) { |
if (st.st_size != max_offset) { |
warnx("dbm_map(%s): Inconsistent file size %llu (expected %d)", |
warnx("dbm_map(%s): Inconsistent file size %lld (expected %d)", |
fname, st.st_size, max_offset); |
fname, st.st_size, max_offset); |
errno = EFTYPE; |
errno = EFTYPE; |
goto fail; |
goto fail; |
|
|
dbm_get(int32_t offset) |
dbm_get(int32_t offset) |
{ |
{ |
offset = be32toh(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", |
warnx("dbm_get: Database corrupt: offset %d > %d", |
offset, max_offset); |
offset, max_offset); |
return NULL; |
return NULL; |