On Sat, Jun 06, 2020 at 03:49:05PM +0300, Vasily Averin wrote:
> Found by smatch:
> net/ethtool/linkmodes.c:356 ethnl_set_linkmodes() warn:
>  variable dereferenced before check 'info' (see line 332)
> net/ethtool/linkinfo.c:143 ethnl_set_linkinfo() warn:
>  variable dereferenced before check 'info' (see line 119
> 
> In both cases non-zero 'info' is always provided by caller.
> 
> Signed-off-by: Vasily Averin <v...@virtuozzo.com>
> ---
>  net/ethtool/linkinfo.c  | 3 +--
>  net/ethtool/linkmodes.c | 3 +--
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/net/ethtool/linkinfo.c b/net/ethtool/linkinfo.c
> index 677068d..5eaf173 100644
> --- a/net/ethtool/linkinfo.c
> +++ b/net/ethtool/linkinfo.c
> @@ -140,8 +140,7 @@ int ethnl_set_linkinfo(struct sk_buff *skb, struct 
> genl_info *info)
>  
>       ret = __ethtool_get_link_ksettings(dev, &ksettings);
>       if (ret < 0) {
> -             if (info)
> -                     GENL_SET_ERR_MSG(info, "failed to retrieve link 
> settings");
> +             GENL_SET_ERR_MSG(info, "failed to retrieve link settings");
>               goto out_ops;
>       }
>       lsettings = &ksettings.base;

This change is already in net tree as commit 178f67b1288b ("ethtool:
linkinfo: remove an unnecessary NULL check").

> diff --git a/net/ethtool/linkmodes.c b/net/ethtool/linkmodes.c
> index 452608c..b759133 100644
> --- a/net/ethtool/linkmodes.c
> +++ b/net/ethtool/linkmodes.c
> @@ -353,8 +353,7 @@ int ethnl_set_linkmodes(struct sk_buff *skb, struct 
> genl_info *info)
>  
>       ret = __ethtool_get_link_ksettings(dev, &ksettings);
>       if (ret < 0) {
> -             if (info)
> -                     GENL_SET_ERR_MSG(info, "failed to retrieve link 
> settings");
> +             GENL_SET_ERR_MSG(info, "failed to retrieve link settings");
>               goto out_ops;
>       }
>  

For this part, 

Reviewed-by: Michal Kubecek <mkube...@suse.cz>

Michal

Attachment: signature.asc
Description: PGP signature

Reply via email to