]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/ipv4/ip_sockglue.c
[AF_UNIX]: Kernel memory leak fix for af_unix datagram getpeersec patch
[linux-2.6-omap-h63xx.git] / net / ipv4 / ip_sockglue.c
index 84f43a3c909811116ba8ed39cc01c98600c13afe..2d05c4133d3e350b7940c737ecf4055b4f197a24 100644 (file)
@@ -112,14 +112,19 @@ static void ip_cmsg_recv_retopts(struct msghdr *msg, struct sk_buff *skb)
 static void ip_cmsg_recv_security(struct msghdr *msg, struct sk_buff *skb)
 {
        char *secdata;
-       u32 seclen;
+       u32 seclen, secid;
        int err;
 
-       err = security_socket_getpeersec_dgram(skb, &secdata, &seclen);
+       err = security_socket_getpeersec_dgram(NULL, skb, &secid);
+       if (err)
+               return;
+
+       err = security_secid_to_secctx(secid, &secdata, &seclen);
        if (err)
                return;
 
        put_cmsg(msg, SOL_IP, SCM_SECURITY, seclen, secdata);
+       security_release_secctx(secdata, seclen);
 }