[2.4] memleak in implementation of the IEEE 802.2 LLC protocol?
Hello!
I am trying to teach smatch's unfree script of skbuffers as those could
create memory leaks if not freed, and I come across this code in
./net/802/llc_sendpdu.c::llc_sendipdu() in 2.4.21 kernel:
tmp=skb_clone(skb, GFP_ATOMIC);
if(tmp!=NULL)
{
tmp->dev = lp->dev;
dev_queue_xmit(skb);
}
(and tmp is not used anywhere else) Naturally looking at llc_sendipdu() function that have similar construction, I think that this small change should be done to avoid memleak and to make the code correct, what do you think?
===== net/802/llc_sendpdu.c 1.3 vs edited =====
net/802/llc_sendpdu.c +1 -1
@@ -283,7 +283,7 @@if (tmp!=NULL ) { tmp->dev = lp->dev; -dev_queue_xmit (skb); +dev_queue_xmit (tmp); } resend_count++; skb = skb->next;
Bye,
Oleg