Re: [PATCH v3 2/2] RDMA/srp: Fix error return code in srp_parse_options()

From: Leon Romanovsky
Date: Mon Nov 28 2022 - 06:58:48 EST


On Sat, Nov 26, 2022 at 09:50:54PM +0800, Wang Yufen wrote:
> In the previous while loop, "ret" may be assigned zero, , so the error
> return code may be incorrectly set to 0 instead of -EINVAL.
> Add out_with_einval goto label and covert all "goto out;" to "goto
> out_with_einval:" where it's appropriate, alse investigate each case
> separately as Andy suggessted.
>
> Fixes: e711f968c49c ("IB/srp: replace custom implementation of hex2bin()")
> Fixes: 2a174df0c602 ("IB/srp: Use kstrtoull() instead of simple_strtoull()")
> Fixes: 19f313438c77 ("IB/srp: Add RDMA/CM support")
> Signed-off-by: Wang Yufen <wangyufen@xxxxxxxxxx>
> ---
> drivers/infiniband/ulp/srp/ib_srp.c | 86 ++++++++++++++++++++++++++-----------
> 1 file changed, 60 insertions(+), 26 deletions(-)

<...>

> @@ -3623,6 +3653,10 @@ static int srp_parse_options(struct net *net, const char *buf,
> out:
> kfree(options);
> return ret;
> +
> +out_with_einval:

It needs to be changed back.

Thanks

> + ret = -EINVAL;
> + goto out;
> }
>
> static ssize_t add_target_store(struct device *dev,
> --
> 1.8.3.1
>