Arnaldo Carvalho de Melo wrote:
>>-               if(ip_ufo_append_data(sk, getfrag, from, length, hh_len,
>>-                              fragheaderlen, transhdrlen, mtu, flags))
>>+               if ((err = ip_ufo_append_data(sk, getfrag, from, length, 
>>hh_len,
>>+                                             fragheaderlen, transhdrlen, mtu,
>>+                                             flags)))
> 
> 
> Ugh, can this be changed to look like:
> 
>      err = foo();
>      if (err)
> 
> ?

Sure, new patch attached.


[IPV4/6]: Fix UFO error propagation

When ufo_append_data fails err is uninitialized, but returned back.
Strangely gcc doesn't notice it.

Coverity #901 and #902

Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>

---
commit 5c6e3731e884da550e7701ba8b68b4c3441e21f6
tree 76cdff77456646194b7f20023ad7744f161bf33f
parent 535744878e34d01a53f946f26dfbca37186f2cf8
author Patrick McHardy <[EMAIL PROTECTED]> Mon, 13 Mar 2006 02:20:47 +0100
committer Patrick McHardy <[EMAIL PROTECTED]> Mon, 13 Mar 2006 02:20:47 +0100

 net/ipv4/ip_output.c  |    7 ++++---
 net/ipv6/ip6_output.c |    7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 57d290d..8ee4d01 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -847,10 +847,11 @@ int ip_append_data(struct sock *sk,
 	if (((length > mtu) && (sk->sk_protocol == IPPROTO_UDP)) &&
 			(rt->u.dst.dev->features & NETIF_F_UFO)) {
 
-		if(ip_ufo_append_data(sk, getfrag, from, length, hh_len,
-			       fragheaderlen, transhdrlen, mtu, flags))
+		err = ip_ufo_append_data(sk, getfrag, from, length, hh_len,
+					 fragheaderlen, transhdrlen, mtu,
+					 flags);
+		if (err)
 			goto error;
-
 		return 0;
 	}
 
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index f999edd..5bf70b1 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -944,10 +944,11 @@ int ip6_append_data(struct sock *sk, int
 	if (((length > mtu) && (sk->sk_protocol == IPPROTO_UDP)) &&
 	    (rt->u.dst.dev->features & NETIF_F_UFO)) {
 
-		if(ip6_ufo_append_data(sk, getfrag, from, length, hh_len,
-				fragheaderlen, transhdrlen, mtu, flags))
+		err = ip6_ufo_append_data(sk, getfrag, from, length, hh_len,
+					  fragheaderlen, transhdrlen, mtu,
+					  flags);
+		if (err)
 			goto error;
-
 		return 0;
 	}
 

Reply via email to