X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Fnet%2Fipv6%2Fping.c;fp=kernel%2Fnet%2Fipv6%2Fping.c;h=3e55447b63a43943b5552ed0c9a80bcb31741c4e;hb=52f993b8e89487ec9ee15a7fb4979e0f09a45b27;hp=263a5164a6f5af1520158293dfb3ab641c223ae2;hpb=c189ccac5702322ed843fe17057035b7222a59b6;p=kvmfornfv.git diff --git a/kernel/net/ipv6/ping.c b/kernel/net/ipv6/ping.c index 263a5164a..3e55447b6 100644 --- a/kernel/net/ipv6/ping.c +++ b/kernel/net/ipv6/ping.c @@ -150,8 +150,10 @@ int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) rt = (struct rt6_info *) dst; np = inet6_sk(sk); - if (!np) - return -EBADF; + if (!np) { + err = -EBADF; + goto dst_err_out; + } if (!fl6.flowi6_oif && ipv6_addr_is_multicast(&fl6.daddr)) fl6.flowi6_oif = np->mcast_oif; @@ -186,6 +188,9 @@ int ping_v6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) } release_sock(sk); +dst_err_out: + dst_release(dst); + if (err) return err;