Re: [PATCH V3] staging: rtl8192e: Fix signedness bug in rtllib_rx_assoc_resp()

From: Fabio M. De Francesco
Date: Fri Apr 15 2022 - 02:10:45 EST


On venerdì 15 aprile 2022 08:06:17 CEST Fabio M. De Francesco wrote:
> On venerdì 15 aprile 2022 07:50:36 CEST Haowen Bai wrote:
> > The rtllib_rx_assoc_resp() function has a signedness bug because it's
> > a declared as a u16 but it return -ENOMEM. When you look at it more
> > closely it returns a mix of error codes including 0xcafe, -ENOMEM, and
> > a->status which is WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG. This is a mess.
> >
> > Clean it up to just return standard kernel error codes. We can print
> > out the a->status before returning a regular error code. The printks
> > in the caller need to be adjusted as well.
>
> This commit message suggested by Dan Carpenter is much better. The
previous
> one made me think that you were doing several different logical changes.
>
> >
> > [snip]
> >
> > static void rtllib_rx_auth_resp(struct rtllib_device *ieee, struct
> sk_buff *skb)
> > {
> > - u16 errcode;
> > + int errcode;
> > u8 *challenge;
> > int chlen = 0;
> > bool bSupportNmode = true, bHalfSupportNmode = false;
> > @@ -2292,8 +2292,8 @@ static void rtllib_rx_auth_resp(struct
> rtllib_device *ieee, struct sk_buff *skb)
> > if (errcode) {
> > ieee->softmac_stats.rx_auth_rs_err++;
> > netdev_info(ieee->dev,
> > - "Authentication response status code
> 0x%x",
> > - errcode);
> > + "Authentication response status code %d",
> > + le16_to_cpu(errcode));
>
> This is something that I'm still missing. Why do we need that call to
> le16_to_cpu on "errcode"?
>
> "errcode" is returned by auth_parse()? I see that this function already
> changes the endianness of the returned value.

Sorry, I missed that you also changed auth_code().

Fabio

>
> Thanks,
>
> Fabio
>
>
> > rtllib_associate_abort(ieee);
> > return;
> > }
> > --
> > 2.7.4
> >
> >
> >
>
>
>
>
>