getnamo / 7zip-cpp

Fork of SevenZip++ for modern builds.
Other
221 stars 93 forks source link

Non zip compression format detection doesn't seem to work (with fix) #45

Open Levoila opened 4 years ago

Levoila commented 4 years ago

Hi,

I had a 7z file to extract but SevenZipExtractor::DetectCompressionFormat would think that the format was CompressionFormat::Lzma86 instead of CompressionFormat::SevenZip.

The format is detected is by trying to open the archive with each type consecutively until the archive opens correctly (link to source) but the file is not seeked to the beginning after each iteration, seemingly leading to no/incorrect detection for all but zip formats.

Seeking the file to the beginning before each iteration with fileStream->Seek({}, STREAM_SEEK_SET, nullptr); seems to fix the issue.

getnamo commented 4 years ago

Interesting catch, seems like you know where to place the fix, if you make a pull request I'll merge it :)

getnamo commented 4 years ago

merged https://github.com/getnamo/7zip-cpp/pull/46