dn_nl_deladdr() almost always returns no error
Subsystems (2)
PATCH 1/1 dn_nl_deladdr() almost always returns no error
As far as I see from the err variable initialization the dn_nl_deladdr() routine was designed to report errors like "EADDRNOTAVAIL" and probaby "ENODEV".
But the code sets this err to 0 after the first nlmsg_parse and goes on, returning this 0 in any case.
Is this made deliberately, or the patch below is correct?
---
net/decnet/dn_dev.c +3 -1
@@ -651,16 +651,18 @@ static int dn_nl_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)struct dn_dev *dn_db;struct ifaddrmsg *ifm;struct dn_ifaddr *ifa, **ifap; -int err = -EADDRNOTAVAIL ; +int err; err =nlmsg_parse (nlh,sizeof (*ifm), tb,IFA_MAX , dn_ifa_policy);if (err <0 ) goto errout; + err = -ENODEV ; ifm =nlmsg_data (nlh);if ((dn_db =dn_dev_by_index (ifm->ifa_index)) ==NULL ) goto errout; + err = -EADDRNOTAVAIL ;for (ifap = &dn_db->ifa_list; (ifa = *ifap); ifap = &ifa->ifa_next) {if (tb[IFA_LOCAL ] &&nla_memcmp (tb[IFA_LOCAL ], &ifa->ifa_local,2 ))
Hi,
Quoted 9 lines · Pavel Emelyanov
As far as I see from the err variable initialization the
dn_nl_deladdr()routine was designed to report errors like "EADDRNOTAVAIL" and probaby "ENODEV".But the code sets this err to 0 after the first
nlmsg_parseand goes on, returning this 0 in any case.Is this made deliberately, or the patch below is correct?
The patch looks good to me.
Quoted 1 line
Signed-off-by Pavel Emelyanov <[email protected]>
Steve.
Quoted 31 lines
---
net/decnet/dn_dev.c +3
-2@@ -651,16 +651,18 @@ static int dn_nl_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)struct dn_dev *dn_db;struct ifaddrmsg *ifm;struct dn_ifaddr *ifa, **ifap; -int err = -EADDRNOTAVAIL ; +int err; err =nlmsg_parse (nlh,sizeof (*ifm), tb,IFA_MAX , dn_ifa_policy);if (err <0 ) goto errout; + err = -ENODEV ; ifm =nlmsg_data (nlh);if ((dn_db =dn_dev_by_index (ifm->ifa_index)) ==NULL ) goto errout; + err = -EADDRNOTAVAIL ;for (ifap = &dn_db->ifa_list; (ifa = *ifap); ifap = &ifa->ifa_next) {if (tb[IFA_LOCAL ] &&nla_memcmp (tb[IFA_LOCAL ], &ifa->ifa_local,2 )) -To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 3 lines · Steven Whitehouse
Quoted 2 lines
Signed-off-by Pavel Emelyanov <[email protected]>
Patch applied. Thanks Pavel!
Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt