From dff559bc3ff35f68cfa946306d4144e25384ea9c Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sun, 28 Mar 2021 16:56:00 +0200 Subject: [PATCH] Fix segfault with corrupted filesystem --- src/dwarfs/filesystem_v2.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dwarfs/filesystem_v2.cpp b/src/dwarfs/filesystem_v2.cpp index 310cd236..1af18cb6 100644 --- a/src/dwarfs/filesystem_v2.cpp +++ b/src/dwarfs/filesystem_v2.cpp @@ -65,8 +65,12 @@ class filesystem_parser { off_t start = 0; for (;;) { + if (start + magic.size() >= mm.size()) { + break; + } + auto ps = mm.as(start); - auto pc = ::memmem(ps, mm.size(), magic.data(), magic.size()); + auto pc = ::memmem(ps, mm.size() - start, magic.data(), magic.size()); if (!pc) { break;