On Sun, Aug 4, 2024 at 8:25 PM Hongzhen Luo <hongz...@linux.alibaba.com> wrote: > > Coverity-id: 502377 > > Signed-off-by: Hongzhen Luo <hongz...@linux.alibaba.com> > --- > lib/kite_deflate.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/lib/kite_deflate.c b/lib/kite_deflate.c > index a5ebd66..e52e382 100644 > --- a/lib/kite_deflate.c > +++ b/lib/kite_deflate.c > @@ -817,7 +817,8 @@ static const struct kite_matchfinder_cfg { > /* 9 */ {32, 258, 258, 4096, true}, /* maximum compression */ > }; > > -static int kite_mf_init(struct kite_matchfinder *mf, int wsiz, int level) > +static int kite_mf_init(struct kite_matchfinder *mf, unsigned int wsiz, > + int level) > { > const struct kite_matchfinder_cfg *cfg; > > -- > 2.43.5 >
Hi Hongzhen, Can you please explain to me where the potential overflow is? Checkers can be smart so easy for me to miss. I see a below check in kitle_me_init() if (wsiz > kHistorySize32 || (1 << ilog2(wsiz)) != wsiz) return -EINVAL; So any larger value than kHistorySize32 which is (1U << 15) is already rejected. So what overflow case is this int => unsigned int type conversion solving? Thanks, Sandeep.