sock: propagate __sock_cmsg_send() error
__sock_cmsg_send() might return different error codes, not only -EINVAL. Fixes:24025c465f
("ipv4: process socket-level control messages in IPv4") Fixes:ad1e46a837
("ipv6: process socket-level control messages in IPv6") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Soheil Hassas Yeganeh <soheil@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a986a05de9
commit
2632616bc4
|
@ -247,8 +247,9 @@ int ip_cmsg_send(struct sock *sk, struct msghdr *msg, struct ipcm_cookie *ipc,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (cmsg->cmsg_level == SOL_SOCKET) {
|
if (cmsg->cmsg_level == SOL_SOCKET) {
|
||||||
if (__sock_cmsg_send(sk, msg, cmsg, &ipc->sockc))
|
err = __sock_cmsg_send(sk, msg, cmsg, &ipc->sockc);
|
||||||
return -EINVAL;
|
if (err)
|
||||||
|
return err;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -746,8 +746,9 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cmsg->cmsg_level == SOL_SOCKET) {
|
if (cmsg->cmsg_level == SOL_SOCKET) {
|
||||||
if (__sock_cmsg_send(sk, msg, cmsg, sockc))
|
err = __sock_cmsg_send(sk, msg, cmsg, sockc);
|
||||||
return -EINVAL;
|
if (err)
|
||||||
|
return err;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue