summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank LENORMAND <lenormf@gmail.com>2019-11-26 13:26:31 +0100
committerFrank LENORMAND <lenormf@gmail.com>2019-11-26 13:26:31 +0100
commit7a384edeb08fe523bb2af8505c2fcd81c1bcf45c (patch)
tree80a50780d864957bb7eae4f98b57aa5bf3b67813 /src
parentfc9e0e8c6ae866674f494e366ba548cb02282667 (diff)
src: Check the filesize before calling `mmap()`
Diffstat (limited to 'src')
-rw-r--r--src/file.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/file.cc b/src/file.cc
index c1f5bb26..fb282a14 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -217,13 +217,12 @@ MappedFile::MappedFile(StringView filename)
if (st.st_size == 0)
return;
+ else if (st.st_size > std::numeric_limits<int>::max())
+ throw runtime_error("file is too big");
data = (const char*)mmap(nullptr, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
if (data == MAP_FAILED)
throw file_access_error{filename, strerror(errno)};
-
- if (st.st_size > std::numeric_limits<int>::max())
- throw runtime_error("file is too big");
}
MappedFile::~MappedFile()