diff options
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r-- | net/ipv4/udp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index be0b21852b13..95d2f198017e 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c | |||
@@ -1048,8 +1048,10 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) | |||
1048 | if (msg->msg_controllen) { | 1048 | if (msg->msg_controllen) { |
1049 | err = ip_cmsg_send(sock_net(sk), msg, &ipc, | 1049 | err = ip_cmsg_send(sock_net(sk), msg, &ipc, |
1050 | sk->sk_family == AF_INET6); | 1050 | sk->sk_family == AF_INET6); |
1051 | if (err) | 1051 | if (unlikely(err)) { |
1052 | kfree(ipc.opt); | ||
1052 | return err; | 1053 | return err; |
1054 | } | ||
1053 | if (ipc.opt) | 1055 | if (ipc.opt) |
1054 | free = 1; | 1056 | free = 1; |
1055 | connected = 0; | 1057 | connected = 0; |