Message ID | 1527733882-149144-1-git-send-email-weiyongjun1@huawei.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net/smc: fix error return code in smc_setsockopt() | expand |
On 05/31/2018 04:31 AM, Wei Yongjun wrote: > Fix to return error code -EINVAL instead of 0 if optlen is invalid. > > Fixes: 01d2f7e2cdd3 ("net/smc: sockopts TCP_NODELAY and TCP_CORK") > Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> > --- > net/smc/af_smc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c > index 2c369d4..973b447 100644 > --- a/net/smc/af_smc.c > +++ b/net/smc/af_smc.c > @@ -1420,7 +1420,7 @@ static int smc_setsockopt(struct socket *sock, int level, int optname, > return rc; > > if (optlen < sizeof(int)) > - return rc; > + return -EINVAL; > get_user(val, (int __user *)optval); > > lock_sock(sk); > Thanks for reporting this error. Your fix is fine, but I think we can get rid of this check at all, since it is already checked in the tcp-code invoked before with smc->clcsock->ops->setsockopt(smc->clcsock, level, optname, optval, optlen)
From: Wei Yongjun <weiyongjun1@huawei.com> Date: Thu, 31 May 2018 02:31:22 +0000 > Fix to return error code -EINVAL instead of 0 if optlen is invalid. > > Fixes: 01d2f7e2cdd3 ("net/smc: sockopts TCP_NODELAY and TCP_CORK") > Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Although the TCP code should be checking this in the previous lines, it's not good practice to depend so tightly upon that. And it makes this code easier to audit if the check exists here explicitly too. So I'll apply this, thanks.
diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c index 2c369d4..973b447 100644 --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -1420,7 +1420,7 @@ static int smc_setsockopt(struct socket *sock, int level, int optname, return rc; if (optlen < sizeof(int)) - return rc; + return -EINVAL; get_user(val, (int __user *)optval); lock_sock(sk);
Fix to return error code -EINVAL instead of 0 if optlen is invalid. Fixes: 01d2f7e2cdd3 ("net/smc: sockopts TCP_NODELAY and TCP_CORK") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> --- net/smc/af_smc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)