Re: [PATCH/RFC] RDMA/iwpm: Fix uninitialized error code in iwpm_send_mapinfo()

From: Arnd Bergmann
Date: Thu Nov 16 2017 - 05:51:03 EST


On Thu, Nov 16, 2017 at 11:26 AM, Geert Uytterhoeven
<geert@xxxxxxxxxxxxxx> wrote:
> With gcc-4.1.2:
>
> drivers/infiniband/core/iwpm_util.c: In function âiwpm_send_mapinfoâ:
> drivers/infiniband/core/iwpm_util.c:647: warning: âretâ may be used uninitialized in this function
>
> Indeed, if nl_client is not found in any of the scanned has buckets, ret
> will be used uninitialized.
>
> Preinitialize ret to zero to fix this.
>
> Fixes: 30dc5e63d6a5ad24 ("RDMA/core: Add support for iWARP Port Mapper user space service")
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> ---
> RFC as I have no idea if this can ever happen, and if yes, what's the
> correct behavior to handle it:
> - return 0,
> - return an error code,
> - don't send anything,
> - anything else?

This looks like a reasonable warning. I don't see on my box with any compiler
version. Do you have a configuration I can use to reproduce it, I'd just like
to see out of curiosity which other compilers report it.

Looking at one caller (iwpm_mapping_info_cb), it seems that we try to make
sure that nl_client is valid first by calling iwpm_valid_client(), and returning
-EINVAL otherwise, so that seems like an appropriate return code if any
caller forgets to test for iwpm_valid_client() first.

Arnd