From da418321735b159f0ff39366d68203c772f152d4 Mon Sep 17 00:00:00 2001 From: Pavel Charvat Date: Tue, 3 Jun 2014 14:20:41 +0200 Subject: [PATCH] Mapping of whole files: Converted to size_t. --- ucw/io-mmap.c | 12 +++++++----- ucw/io.h | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/ucw/io-mmap.c b/ucw/io-mmap.c index 24010b51..1a3f1438 100644 --- a/ucw/io-mmap.c +++ b/ucw/io-mmap.c @@ -17,16 +17,18 @@ #include void * -mmap_file(const char *name, unsigned *len, int writeable) +mmap_file(const char *name, size_t *len, int writeable) { - int fd = open(name, writeable ? O_RDWR : O_RDONLY); - struct stat st; + int fd = ucw_open(name, writeable ? O_RDWR : O_RDONLY); + ucw_stat_t st; void *x; if (fd < 0) die("open(%s): %m", name); - if (fstat(fd, &st) < 0) + if (ucw_fstat(fd, &st) < 0) die("fstat(%s): %m", name); + if ((uintmax_t)st.st_size > SIZE_MAX) + die("mmap(%s): File too large", name); if (len) *len = st.st_size; if (st.st_size) @@ -42,7 +44,7 @@ mmap_file(const char *name, unsigned *len, int writeable) } void -munmap_file(void *start, unsigned len) +munmap_file(void *start, size_t len) { munmap(start, len); } diff --git a/ucw/io.h b/ucw/io.h index 36b35243..ac8c7ec6 100644 --- a/ucw/io.h +++ b/ucw/io.h @@ -65,8 +65,8 @@ ucw_off_t ucw_file_size(const char *name); /* io-mmap.c */ -void *mmap_file(const char *name, unsigned *len, int writeable); -void munmap_file(void *start, unsigned len); +void *mmap_file(const char *name, size_t *len, int writeable); +void munmap_file(void *start, size_t len); /* io-careful.c */ -- 2.39.2