qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] nbd: fix uninitialized variable warning


From: Pan Nengyuan
Subject: Re: [PATCH] nbd: fix uninitialized variable warning
Date: Wed, 8 Jan 2020 10:05:22 +0800
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2


On 1/8/2020 6:24 AM, Eric Blake wrote:
> On 1/5/20 7:54 PM, address@hidden wrote:
>> From: Pan Nengyuan <address@hidden>
>>
>> Fixes:
>> /mnt/sdb/qemu/nbd/server.c: In function 'nbd_handle_request':
>> /mnt/sdb/qemu/nbd/server.c:2313:9: error: 'ret' may be used uninitialized in 
>> this function [-Werror=maybe-uninitialized]
>>       int ret;
>>
>> Reported-by: Euler Robot <address@hidden>
> 
> False positive in the robot - I cannot see any path where ret is used 
> uninitialized.  Closest might be the handling of NBD_CMD_BLOCK_STATUS, which 
> looks like:
> 
> if (a || b) {
>   if (a) {
>     ret = ...;
>     if (ret < 0) {
>       return ret;
>     }
>   }
>   if (b) {
>     ret = ...;
>     if (ret < 0) {
>       return ret;
>     }
>   }
>   return ret;
> }
> 
> In fact, those 'if (ret < 0)' tests are pointless, since nothing else really 
> happens before the final return ret.
> 
> If I'm right about this being what trips up the robot, does changing 'if (b)' 
> into 'else' solve the problem, rather than adding an initializer? And if so, 
> can we clean up the pointless code while at it?

Yes, you are right, Changing 'if(b)' to 'else' solves the problem.
I will change it and clean up the pointless code in next version.

Thanks.

> 
>> Signed-off-by: Pan Nengyuan <address@hidden>
>> ---
>>   nbd/server.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/nbd/server.c b/nbd/server.c
>> index 24ebc1a805..7eb3de0842 100644
>> --- a/nbd/server.c
>> +++ b/nbd/server.c
>> @@ -2310,7 +2310,7 @@ static coroutine_fn int nbd_handle_request(NBDClient 
>> *client,
>>                                              NBDRequest *request,
>>                                              uint8_t *data, Error **errp)
>>   {
>> -    int ret;
>> +    int ret = 0;
>>       int flags;
>>       NBDExport *exp = client->exp;
>>       char *msg;
>>
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]