diff options
Diffstat (limited to 'net/ipv4/raw.c')
| -rw-r--r-- | net/ipv4/raw.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 63e5be0abd86..bc35f1842512 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -601,8 +601,11 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)  			    (inet->hdrincl ? FLOWI_FLAG_KNOWN_NH : 0),  			   daddr, saddr, 0, 0); -	if (!saddr && ipc.oif) -		l3mdev_get_saddr(net, ipc.oif, &fl4); +	if (!saddr && ipc.oif) { +		err = l3mdev_get_saddr(net, ipc.oif, &fl4); +		if (err < 0) +			goto done; +	}  	if (!inet->hdrincl) {  		rfv.msg = msg;  | 
