From 53b1e703ab24c8e6b67749462df39c73de816fb8 Mon Sep 17 00:00:00 2001 From: Marrub Date: Tue, 12 Mar 2019 16:28:34 -0400 Subject: [PATCH] fix load_zlib_header --- source/marathon/defl.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/source/marathon/defl.rs b/source/marathon/defl.rs index 72b9404..23f60d2 100644 --- a/source/marathon/defl.rs +++ b/source/marathon/defl.rs @@ -18,10 +18,18 @@ pub fn load_zlib_header(b: &[u8]) -> ResultS } let cm = cmf & CM; - let cinfo = cmf & CINFO >> 4; + let cinfo = cmf & CINFO; - if cm != 8 || fcheck % 31 != 0 || cinfo > 7 { - bail!("not zlib format"); + if cm != 8 { + bail!("unknown compression method"); + } + + if cinfo > 7 << 4 { + bail!("lz77 window size logarithm is invalid"); + } + + if fcheck % 31 != 0 { + bail!("invalid fcheck"); } if flg & FDICT != 0 {