Messages in this thread Patch in this message | | | Date | Sat, 19 Apr 2003 15:28:35 +0300 | From | Muli Ben-Yehuda <> | Subject | Re: [CHECKER] 6 memory leaks |
| |
On Sat, Apr 19, 2003 at 10:08:41PM +1000, James Morris wrote: > On Sat, 19 Apr 2003, Muli Ben-Yehuda wrote: > > > This one appears to be exactly the same as the previous one, except > > the line number is different. Does that mean the checker things there > > are two leaks in this piece of code? > > This one was for the ipv6 version. If you could make a patch for ipv6, > I'll forward both to Dave Miller.
Here it is, thanks.
Index: net/ipv4/netfilter/ip_queue.c =================================================================== RCS file: /home/cvs/linux-2.5/net/ipv4/netfilter/ip_queue.c,v retrieving revision 1.13 diff -u -r1.13 ip_queue.c --- net/ipv4/netfilter/ip_queue.c 3 Apr 2003 16:59:51 -0000 1.13 +++ net/ipv4/netfilter/ip_queue.c 19 Apr 2003 11:35:11 -0000 @@ -300,8 +300,9 @@ write_lock_bh(&queue_lock); if (!peer_pid) - goto err_out_unlock; + goto err_out_free_nskb; + /* netlink_unicast will either free the nskb or attach it to a socket */ status = netlink_unicast(ipqnl, nskb, peer_pid, MSG_DONTWAIT); if (status < 0) goto err_out_unlock; @@ -312,6 +313,9 @@ write_unlock_bh(&queue_lock); return status; + +err_out_free_nskb: + kfree_skb(nskb); err_out_unlock: write_unlock_bh(&queue_lock); Index: net/ipv6/netfilter/ip6_queue.c =================================================================== RCS file: /home/cvs/linux-2.5/net/ipv6/netfilter/ip6_queue.c,v retrieving revision 1.10 diff -u -r1.10 ip6_queue.c --- net/ipv6/netfilter/ip6_queue.c 5 Apr 2003 01:30:47 -0000 1.10 +++ net/ipv6/netfilter/ip6_queue.c 19 Apr 2003 11:35:12 -0000 @@ -304,8 +304,9 @@ write_lock_bh(&queue_lock); if (!peer_pid) - goto err_out_unlock; + goto err_out_free_nskb; + /* netlink_unicast will either free the nskb or attach it to a socket */ status = netlink_unicast(ipqnl, nskb, peer_pid, MSG_DONTWAIT); if (status < 0) goto err_out_unlock; @@ -316,6 +317,9 @@ write_unlock_bh(&queue_lock); return status; + +err_out_free_nskb: + kfree_skb(nskb); err_out_unlock: write_unlock_bh(&queue_lock); -- Muli Ben-Yehuda http://www.mulix.org
[unhandled content-type:application/pgp-signature] | |