rtnetlink: Fix error handling in do_setlink()
Commit c02db8c6290bb992442fec1407643c94cc414375: 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: David Howells <dhowells@redhat.com> cc: Chris Wright <chrisw@sous-sol.org> cc: David S. Miller <davem@davemloft.net> Acked-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
eb1669aed9
Коммит
253683bbfb
|
@ -1199,8 +1199,10 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm,
|
|||
struct nlattr *attr;
|
||||
int rem;
|
||||
nla_for_each_nested(attr, tb[IFLA_VFINFO_LIST], rem) {
|
||||
if (nla_type(attr) != IFLA_VF_INFO)
|
||||
if (nla_type(attr) != IFLA_VF_INFO) {
|
||||
err = -EINVAL;
|
||||
goto errout;
|
||||
}
|
||||
err = do_setvfinfo(dev, attr);
|
||||
if (err < 0)
|
||||
goto errout;
|
||||
|
|
Загрузка…
Ссылка в новой задаче