diff options
| author | Frank LENORMAND <lenormf@gmail.com> | 2019-11-26 13:26:31 +0100 |
|---|---|---|
| committer | Frank LENORMAND <lenormf@gmail.com> | 2019-11-26 13:26:31 +0100 |
| commit | 7a384edeb08fe523bb2af8505c2fcd81c1bcf45c (patch) | |
| tree | 80a50780d864957bb7eae4f98b57aa5bf3b67813 /src/file.cc | |
| parent | fc9e0e8c6ae866674f494e366ba548cb02282667 (diff) | |
src: Check the filesize before calling `mmap()`
Diffstat (limited to 'src/file.cc')
| -rw-r--r-- | src/file.cc | 5 |
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() |
