File: fix_segfault.patch

package info (click to toggle)
snap-aligner 1.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 4,988 kB
  • sloc: cpp: 36,500; ansic: 5,239; python: 227; makefile: 85; sh: 28
file content (37 lines) | stat: -rw-r--r-- 1,131 bytes parent folder | download
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;