Hi,
Static analysis of linux-next picked up an issue with the following commit:
commit 8fc8598e61f6f384f3eaf1d9b09500c12af47b37
Author: Jerry Chuang <[email protected]>
Date: Tue Nov 3 07:17:11 2009 -0200
Staging: Added Realtek rtl8192u driver to staging
In drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c we have:
CID 48331 (#1 of 1): Unused value (UNUSED_VALUE) assigned_pointer
Assigning value from ieee->crypt[ieee->tx_keyidx] to crypt here, but
that stored value is not used.
746 crypt = ieee->crypt[ieee->tx_keyidx];
747 if (encrypt)
748 beacon_buf->capability |=
cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
Pointer crypt is being assigned but is never used afterwards. Now
either this is a redundant assignment and can be removed OR maybe crypt
should be checked and there is a typo, e.g.:
crypt = ieee->crypt[ieee->tx_keyidx];
if (crypt)
...
Either way, it's not clear to me and I think the code needs cleaning up.
Any ideas?
Colin
On Wed, Aug 21, 2019 at 07:18:39PM +0100, Colin Ian King wrote:
> Hi,
>
> Static analysis of linux-next picked up an issue with the following commit:
>
> commit 8fc8598e61f6f384f3eaf1d9b09500c12af47b37
> Author: Jerry Chuang <[email protected]>
> Date: Tue Nov 3 07:17:11 2009 -0200
>
> Staging: Added Realtek rtl8192u driver to staging
>
> In drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c we have:
>
> CID 48331 (#1 of 1): Unused value (UNUSED_VALUE) assigned_pointer
>
> Assigning value from ieee->crypt[ieee->tx_keyidx] to crypt here, but
> that stored value is not used.
>
> 746 crypt = ieee->crypt[ieee->tx_keyidx];
> 747 if (encrypt)
> 748 beacon_buf->capability |=
> cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
>
> Pointer crypt is being assigned but is never used afterwards. Now
> either this is a redundant assignment and can be removed OR maybe crypt
> should be checked and there is a typo, e.g.:
>
> crypt = ieee->crypt[ieee->tx_keyidx];
> if (crypt)
> ...
>
> Either way, it's not clear to me and I think the code needs cleaning up.
> Any ideas?
10+ year old code, yeah!!!
Just guess, who knows, no one seems to care :(
greg k-h
> > Either way, it's not clear to me and I think the code needs cleaning
> > up.
> > Any ideas?
>
> 10+ year old code, yeah!!!
>
> Just guess, who knows, no one seems to care :(
I'm at least interested in helping with cleaning the code and learning
about the driver, maybe fixing up logical errors like this at some point.
But I have had some trouble finding the hardware to test on. Maybe that's
part of the issue?
On Wed, Aug 21, 2019 at 07:18:39PM +0100, Colin Ian King wrote:
> Hi,
>
> Static analysis of linux-next picked up an issue with the following commit:
>
> commit 8fc8598e61f6f384f3eaf1d9b09500c12af47b37
> Author: Jerry Chuang <[email protected]>
> Date: Tue Nov 3 07:17:11 2009 -0200
>
> Staging: Added Realtek rtl8192u driver to staging
>
> In drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c we have:
>
> CID 48331 (#1 of 1): Unused value (UNUSED_VALUE) assigned_pointer
>
> Assigning value from ieee->crypt[ieee->tx_keyidx] to crypt here, but
> that stored value is not used.
>
> 746 crypt = ieee->crypt[ieee->tx_keyidx];
> 747 if (encrypt)
> 748 beacon_buf->capability |=
> cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
Earlir in the function we have:
695 crypt = ieee->crypt[ieee->tx_keyidx];
696
697 encrypt = ieee->host_encrypt && crypt && crypt->ops &&
698 ((0 == strcmp(crypt->ops->name, "WEP") || wpa_ie_len));
699 /* HT ralated element */
So the "crypt" assignment is dublicate and should definitely be removed.
The "if (encrypt) " check looks correct and it sort of matches what we
do in ieee80211_assoc_resp().
840 encrypt = crypt && crypt->ops;
841
842 if (encrypt)
843 assoc->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
844
So let's leave it as-is, just delete the crypt assignment. If you want,
you can send this patch and I can give you a Reviewed-by tag or if you
want I can send the patch and give you Reported-by credit.
regards,
dan carpenter