diff --git a/src/linux/net/newip/devninet.c b/src/linux/net/newip/devninet.c index e234498d15835d92555f1d8d1d34af624931a815..272cf0522526e85e13f43428b714a1aac682d220 100644 --- a/src/linux/net/newip/devninet.c +++ b/src/linux/net/newip/devninet.c @@ -51,7 +51,7 @@ int ninet_gifconf(struct net_device *dev, char __user *buf, int len, int size) done = -EFAULT; break; } - len -= size; + len -= size; done += size; } out: diff --git a/src/linux/net/newip/nip_addrconf.c b/src/linux/net/newip/nip_addrconf.c index 135d46ee8a0d14e0432ad3c6e10e3025a8c4e64e..654f4918c5922b61c0b4ff26f24d73682a767d30 100644 --- a/src/linux/net/newip/nip_addrconf.c +++ b/src/linux/net/newip/nip_addrconf.c @@ -787,9 +787,8 @@ static int ninet_addr_get(const struct net_device *dev, struct ninet_ifaddr *ifa struct nip_addr addr; err = nip_get_firstaddr(dev, &addr); - if (err) - return err; - ifa->addr = addr; + if (!err) + ifa->addr = addr; return err; } diff --git a/src/linux/net/newip/nip_output.c b/src/linux/net/newip/nip_output.c index 627b3897fc505f2be08cef631d5324aa3420a33c..adafaacd15008a68b76316ef3a820852af5efd91 100644 --- a/src/linux/net/newip/nip_output.c +++ b/src/linux/net/newip/nip_output.c @@ -360,7 +360,7 @@ struct dst_entry *nip_sk_dst_lookup_flow(struct sock *sk, struct flow_nip *fln) int tcp_nip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl) { - int err = -EFAULT; + int err; struct net *net = sock_net(sk); struct nip_addr *saddr, *daddr; struct dst_entry *dst; @@ -389,13 +389,12 @@ int tcp_nip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl) if (!dst) { nip_dbg("no dst cache for sk, search newip rt"); dst = nip_route_output(net, sk, &fln); - err = dst->error; - if (err) - goto out_err_release; if (!dst) { nip_dbg("cannot find dst"); goto out; } + if (dst->error) + goto out_err_release; sk_dst_set(sk, dst); } skb_dst_set_noref(skb, dst);