2015-02-02 16:51:46

by Sudip Mukherjee

[permalink] [raw]
Subject: Re: [PATCH v2] staging: rtl8192u: r8192U_core: Fix for possible null pointer dereference

On Thu, Jan 29, 2015 at 07:59:12PM +0100, Rickard Strandqvist wrote:
> Fix a possible null pointer dereference, there is
> otherwise a risk of a possible null pointer dereference.
>
> This was found using a static code analysis program called cppcheck
>
> Signed-off-by: Rickard Strandqvist <[email protected]>
> ---
> drivers/staging/rtl8192u/r8192U_core.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c
> index e031a25..4a29237 100644
> --- a/drivers/staging/rtl8192u/r8192U_core.c
> +++ b/drivers/staging/rtl8192u/r8192U_core.c
> @@ -4476,11 +4476,11 @@ static void query_rxdesc_status(struct sk_buff *skb,
>
> /* for debug 2008.5.29 */
>
> - //added by vivi, for MP, 20080108
> - stats->RxIs40MHzPacket = driver_info->BW;
> - if (stats->RxDrvInfoSize != 0)
> + if (driver_info && stats->RxDrvInfoSize != 0) {
> + //added by vivi, for MP, 20080108
> + stats->RxIs40MHzPacket = driver_info->BW;
> TranslateRxSignalStuff819xUsb(skb, stats, driver_info);
> -
> + }
but isn't the logic getting changed here?

regards
sudip

> }


2015-02-04 20:05:55

by Rickard Strandqvist

[permalink] [raw]
Subject: Re: [PATCH v2] staging: rtl8192u: r8192U_core: Fix for possible null pointer dereference

2015-02-02 17:51 GMT+01:00 Sudip Mukherjee <[email protected]>:
> On Thu, Jan 29, 2015 at 07:59:12PM +0100, Rickard Strandqvist wrote:
>> Fix a possible null pointer dereference, there is
>> otherwise a risk of a possible null pointer dereference.
>>
>> This was found using a static code analysis program called cppcheck
>>
>> Signed-off-by: Rickard Strandqvist <[email protected]>
>> ---
>> drivers/staging/rtl8192u/r8192U_core.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/staging/rtl8192u/r8192U_core.c b/drivers/staging/rtl8192u/r8192U_core.c
>> index e031a25..4a29237 100644
>> --- a/drivers/staging/rtl8192u/r8192U_core.c
>> +++ b/drivers/staging/rtl8192u/r8192U_core.c
>> @@ -4476,11 +4476,11 @@ static void query_rxdesc_status(struct sk_buff *skb,
>>
>> /* for debug 2008.5.29 */
>>
>> - //added by vivi, for MP, 20080108
>> - stats->RxIs40MHzPacket = driver_info->BW;
>> - if (stats->RxDrvInfoSize != 0)
>> + if (driver_info && stats->RxDrvInfoSize != 0) {
>> + //added by vivi, for MP, 20080108
>> + stats->RxIs40MHzPacket = driver_info->BW;
>> TranslateRxSignalStuff819xUsb(skb, stats, driver_info);
>> -
>> + }
> but isn't the logic getting changed here?
>
> regards
> sudip
>
>> }


Hi Sudip

Yes partly, but that's too ensure that driver_info is not null.

Se
call TranslateRxSignalStuff819xUsb()
->
call rtl8192_query_rxphystatus()

Where driver_info is pdrvinfo, and is used as:
pdrvinfo->RxHT && pdrvinfo->RxRate
and more.

Or perhaps change in rtl8192_query_rxphystatus() instead?


Kind regards
Rickard Strandqvist