Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit baa829d8 authored by Patrick McHardy's avatar Patrick McHardy Committed by David S. Miller
Browse files

[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: default avatarPatrick McHardy <kaber@trash.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a1ff6e2
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -847,10 +847,11 @@ int ip_append_data(struct sock *sk,
	if (((length > mtu) && (sk->sk_protocol == IPPROTO_UDP)) &&
	if (((length > mtu) && (sk->sk_protocol == IPPROTO_UDP)) &&
			(rt->u.dst.dev->features & NETIF_F_UFO)) {
			(rt->u.dst.dev->features & NETIF_F_UFO)) {


		if(ip_ufo_append_data(sk, getfrag, from, length, hh_len,
		err = ip_ufo_append_data(sk, getfrag, from, length, hh_len,
			       fragheaderlen, transhdrlen, mtu, flags))
					 fragheaderlen, transhdrlen, mtu,
					 flags);
		if (err)
			goto error;
			goto error;

		return 0;
		return 0;
	}
	}


+4 −3
Original line number Original line Diff line number Diff line
@@ -944,10 +944,11 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
	if (((length > mtu) && (sk->sk_protocol == IPPROTO_UDP)) &&
	if (((length > mtu) && (sk->sk_protocol == IPPROTO_UDP)) &&
	    (rt->u.dst.dev->features & NETIF_F_UFO)) {
	    (rt->u.dst.dev->features & NETIF_F_UFO)) {


		if(ip6_ufo_append_data(sk, getfrag, from, length, hh_len,
		err = ip6_ufo_append_data(sk, getfrag, from, length, hh_len,
				fragheaderlen, transhdrlen, mtu, flags))
					  fragheaderlen, transhdrlen, mtu,
					  flags);
		if (err)
			goto error;
			goto error;

		return 0;
		return 0;
	}
	}