From 49d8fa1058aaf23c29e074b2314492ae40d2f557 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Tue, 21 Feb 2017 12:05:07 +0000 Subject: Types change: big pass on libstddjb and libunixonacid libdatastruct still missing, library still not functional --- src/libstddjb/cdb_init_map.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/libstddjb/cdb_init_map.c') diff --git a/src/libstddjb/cdb_init_map.c b/src/libstddjb/cdb_init_map.c index bf8eb9d..de9aad0 100644 --- a/src/libstddjb/cdb_init_map.c +++ b/src/libstddjb/cdb_init_map.c @@ -1,8 +1,14 @@ /* ISC license. */ +#ifndef _BSD_SOURCE +#define _BSD_SOURCE +#endif + #include #include #include +#include +#include #include int cdb_init_map (struct cdb *c, int fd, int domap) @@ -12,6 +18,7 @@ int cdb_init_map (struct cdb *c, int fd, int domap) struct stat st ; char *map ; if (fstat(fd, &st) < 0) return 0 ; + if (st.st_size > UINT32_MAX) return (errno = EOVERFLOW, 0) ; map = mmap(0, st.st_size, PROT_READ, MAP_SHARED, fd, 0) ; if (map == MAP_FAILED) return 0 ; c->fd = -fd-2 ; -- cgit v1.2.3