From fc465784df7893abc180ede9b69b4e27aaa522f7 Mon Sep 17 00:00:00 2001 From: kh1 Date: Tue, 24 Sep 2013 14:14:14 +0200 Subject: We can't expect a multiple of 8 during marker search. Once the marker was on a position not matching a multiple of 8 from the end, the search would fail. Now decrement by 1 byte. Change-Id: Ia703c9074b3bef6b1a300865abfe24dcb2c8d5fd Reviewed-by: Tim Jenssen Reviewed-by: Niels Weber --- src/libs/installer/binaryformat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/libs/installer/binaryformat.cpp b/src/libs/installer/binaryformat.cpp index 8e79e84c3..fe1c61ced 100644 --- a/src/libs/installer/binaryformat.cpp +++ b/src/libs/installer/binaryformat.cpp @@ -237,7 +237,7 @@ qint64 QInstaller::findMagicCookie(QFile *in, quint64 magicCookie) while (searched >= 0) { if (memcmp(&magicCookie, (mapped + searched), markerSize) == 0) return (fileSize - maxSearch) + searched; - searched -= markerSize; + --searched; } throw Error(QObject::tr("No marker found, stopped after %1.").arg(humanReadableSize(maxSearch))); -- cgit v1.2.3