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
|
||||
if (cmsg->cmsg_level == SOL_SOCKET) {
|
||||
if (__sock_cmsg_send(sk, msg, cmsg, &ipc->sockc))
|
||||
return -EINVAL;
|
||||
err = __sock_cmsg_send(sk, msg, cmsg, &ipc->sockc);
|
||||
if (err)
|
||||
return err;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -746,8 +746,9 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,
|
|||
}
|
||||
|
||||
if (cmsg->cmsg_level == SOL_SOCKET) {
|
||||
if (__sock_cmsg_send(sk, msg, cmsg, sockc))
|
||||
return -EINVAL;
|
||||
err = __sock_cmsg_send(sk, msg, cmsg, sockc);
|
||||
if (err)
|
||||
return err;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue