Skip to content

Commit

Permalink
[NETLINK]: Fix use after free in netlink_recvmsg
Browse files Browse the repository at this point in the history
When the user passes in MSG_TRUNC the skb is used after getting freed.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Patrick McHardy authored and David S. Miller committed May 3, 2007
1 parent 3f660d6 commit 188ccb5
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions net/netlink/af_netlink.c
Original file line number Diff line number Diff line change
Expand Up @@ -1246,16 +1246,14 @@ static int netlink_recvmsg(struct kiocb *kiocb, struct socket *sock,
siocb->scm = &scm;
}
siocb->scm->creds = *NETLINK_CREDS(skb);
if (flags & MSG_TRUNC)
copied = skb->len;
skb_free_datagram(sk, skb);

if (nlk->cb && atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf / 2)
netlink_dump(sk);

scm_recv(sock, msg, siocb->scm, flags);

if (flags & MSG_TRUNC)
copied = skb->len;

out:
netlink_rcv_wake(sk);
return err ? : copied;
Expand Down

0 comments on commit 188ccb5

Please sign in to comment.