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

From: Geert Uytterhoeven
Date: Wed Nov 29 2017 - 05:40:43 EST


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 -EINVAL to fix this.

Fixes: 30dc5e63d6a5ad24 ("RDMA/core: Add support for iWARP Port Mapper user space service")
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
---
v2:
- Use -EINVAL instead of zero,
- Move the preinitialization to just before the loop, to catach future
early offenders,
- Drop RFC state.
---
drivers/infiniband/core/iwpm_util.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/infiniband/core/iwpm_util.c b/drivers/infiniband/core/iwpm_util.c
index 3c4faadb8cddd7fd..81528f64061a49df 100644
--- a/drivers/infiniband/core/iwpm_util.c
+++ b/drivers/infiniband/core/iwpm_util.c
@@ -654,6 +654,7 @@ int iwpm_send_mapinfo(u8 nl_client, int iwpm_pid)
}
skb_num++;
spin_lock_irqsave(&iwpm_mapinfo_lock, flags);
+ ret = -EINVAL;
for (i = 0; i < IWPM_MAPINFO_HASH_SIZE; i++) {
hlist_for_each_entry(map_info, &iwpm_hash_bucket[i],
hlist_node) {
--
2.7.4