diff options
author | Karsten Graul <kgraul@linux.ibm.com> | 2021-09-20 21:18:14 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-10-06 15:31:13 +0200 |
commit | ef57ed80fb9a6dbd3166d466a2c9c14f2d717dbb (patch) | |
tree | 59c349ee9edba88c1efb1f42c590adf6dd887098 /net/smc | |
parent | 17280ed7466909d424f96b464d131fb80a4ad5cb (diff) | |
download | linux-stable-ef57ed80fb9a6dbd3166d466a2c9c14f2d717dbb.tar.gz linux-stable-ef57ed80fb9a6dbd3166d466a2c9c14f2d717dbb.tar.bz2 linux-stable-ef57ed80fb9a6dbd3166d466a2c9c14f2d717dbb.zip |
net/smc: add missing error check in smc_clc_prfx_set()
[ Upstream commit 6c90731980655280ea07ce4b21eb97457bf86286 ]
Coverity stumbled over a missing error check in smc_clc_prfx_set():
*** CID 1475954: Error handling issues (CHECKED_RETURN)
/net/smc/smc_clc.c: 233 in smc_clc_prfx_set()
>>> CID 1475954: Error handling issues (CHECKED_RETURN)
>>> Calling "kernel_getsockname" without checking return value (as is done elsewhere 8 out of 10 times).
233 kernel_getsockname(clcsock, (struct sockaddr *)&addrs);
Add the return code check in smc_clc_prfx_set().
Fixes: c246d942eabc ("net/smc: restructure netinfo for CLC proposal msgs")
Reported-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/smc')
-rw-r--r-- | net/smc/smc_clc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c index aa9a17ac1f7b..063acfbdcd89 100644 --- a/net/smc/smc_clc.c +++ b/net/smc/smc_clc.c @@ -162,7 +162,8 @@ static int smc_clc_prfx_set(struct socket *clcsock, goto out_rel; } /* get address to which the internal TCP socket is bound */ - kernel_getsockname(clcsock, (struct sockaddr *)&addrs); + if (kernel_getsockname(clcsock, (struct sockaddr *)&addrs) < 0) + goto out_rel; /* analyze IP specific data of net_device belonging to TCP socket */ addr6 = (struct sockaddr_in6 *)&addrs; rcu_read_lock(); |