1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
From 652076614793f24bbd4f34cb8193269f6661486c Mon Sep 17 00:00:00 2001
From: Arun Subramaniyan <sarun2006k1in@gmail.com>
Date: Sat, 28 Nov 2020 16:58:17 -0500
Subject: [PATCH] Fix segmentation fault when prefetching empty mapped overflow
table
---
SNAPLib/GenericFile_map.cpp | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/SNAPLib/GenericFile_map.cpp b/SNAPLib/GenericFile_map.cpp
index 652e5b9..c789d24 100644
--- a/SNAPLib/GenericFile_map.cpp
+++ b/SNAPLib/GenericFile_map.cpp
@@ -29,6 +29,9 @@ Revision History:
GenericFile_map *GenericFile_map::open(const char *filename)
{
size_t fileSize = QueryFileSize(filename);
+ if (0 == fileSize) {
+ return new GenericFile_map(NULL, NULL, 0);
+ }
void *contents;
MemoryMappedFile *mappedFile = OpenMemoryMappedFile(filename, 0, fileSize, &contents);
@@ -58,7 +61,11 @@ GenericFile_map::~GenericFile_map()
_int64
GenericFile_map::prefetch()
{
- AdviseMemoryMappedFilePrefetch(mappedFile);
+ if (NULL == mappedFile) {
+ return 0;
+ }
+
+ AdviseMemoryMappedFilePrefetch(mappedFile);
int pageSize = getpagesize();
_int64 total = 0;
|