• David Howells's avatar
    rtnetlink: Fix error handling in do_setlink() · 253683bb
    David Howells authored
    Commit c02db8c6:
    
    	Author:  Chris Wright <chrisw@sous-sol.org>
    	Date:    Sun May 16 01:05:45 2010 -0700
    	Subject: rtnetlink: make SR-IOV VF interface symmetric
    
    adds broken error handling to do_setlink() in net/core/rtnetlink.c.  The
    problem is the following chunk of code:
    
    	if (tb[IFLA_VFINFO_LIST]) {
    		struct nlattr *attr;
    		int rem;
    		nla_for_each_nested(attr, tb[IFLA_VFINFO_LIST], rem) {
    			if (nla_type(attr) != IFLA_VF_INFO)
      ---->				goto errout;
    			err = do_setvfinfo(dev, attr);
    			if (err < 0)
    				goto errout;
    			modified = 1;
    		}
    	}
    
    which can get to errout without setting err, resulting in the following error:
    
    net/core/rtnetlink.c: In function 'do_setlink':
    net/core/rtnetlink.c:904: warning: 'err' may be used uninitialized in this function
    
    Change the code to return -EINVAL in this case.  Note that this might not be
    the appropriate error though.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    cc: Chris Wright <chrisw@sous-sol.org>
    cc: David S. Miller <davem@davemloft.net>
    Acked-by: default avatarChris Wright <chrisw@sous-sol.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    253683bb
rtnetlink.c 43.6 KB