From: "Randy.Dunlap" <rdunlap@xenotime.net>
To: Eric Sesterhenn <snakebyte@gmx.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Possible leaks in network drivers
Date: Wed, 21 Jun 2006 10:05:25 -0700 [thread overview]
Message-ID: <20060621100525.bb4f76f4.rdunlap@xenotime.net> (raw)
In-Reply-To: <1150907317.8320.0.camel@alice>
On Wed, 21 Jun 2006 18:28:37 +0200 Eric Sesterhenn wrote:
> hi,
>
> Coverity complains about several pretty similar resource leaks
> inside the net drivers, and i am not sure if those are real
Linux network driver development is done on the netdev
mailing list (netdev@vger.kernel.org).
You'll find a larger pool of the right people there...
> name coverity #id
>
> drivers/net/8390.c 623
> drivers/net/pcmcia/xirc2ps_cs.c 627
> drivers/net/sis190.c 628
> drivers/net/wireless/wavelan.c 634
> drivers/net/wireless/orinoco.c 661
> drivers/net/depca.c 1246
> drivers/net/hp100.c 1247
> drivers/net/smc9194.c 1248
> drivers/net/skge.c 1249
>
> Its always in the hard_start_xmit() function
> of the driver. Where we call skb=skb_padto(skb, ETH_ZLEN),
> and dont free the skb later when something goes wrong.
>
> Here is the output from the sis190.c case:
>
> ------------snip--8<-------------
> 1158 if (unlikely(skb->len < ETH_ZLEN)) {
>
> Event alloc_fn: Called allocation function "skb_padto" [model]
> Event var_assign: Assigned variable "skb" to storage returned from "skb_padto"
> Also see events: [var_assign][leaked_storage]
>
> 1159 skb = skb_padto(skb, ETH_ZLEN);
>
> At conditional (1): "skb == 0" taking false path
>
> 1160 if (!skb) {
> 1161 tp->stats.tx_dropped++;
> 1162 goto out;
> 1163 }
> 1164 len = ETH_ZLEN;
> 1165 } else {
> 1166 len = skb->len;
> 1167 }
> 1168
> 1169 entry = tp->cur_tx % NUM_TX_DESC;
> 1170 desc = tp->TxDescRing + entry;
> 1171
>
> At conditional (2): "(desc)->status & 2147483648 != 0" taking true path
>
> 1172 if (unlikely(le32_to_cpu(desc->status) & OWNbit)) {
> 1173 netif_stop_queue(dev);
>
> At conditional (3): "(tp)->msg_enable & 128 != 0" taking true path
>
> 1174 net_tx_err(tp, KERN_ERR PFX
> 1175 "%s: BUG! Tx Ring full when queue awake!\n",
> 1176 dev->name);
>
> Event leaked_storage: Returned without freeing storage "skb"
> Also see events: [alloc_fn][var_assign]
>
> 1177 return NETDEV_TX_BUSY;
> 1178 }
>
> ------------snip--8<-------------
>
> As far as i can see, skb_put() might return a fresh allocated skb,
> so adding a kfree_skb() here should fix these, or am i missing
> something?
>
> Thanks Eric
---
~Randy
next prev parent reply other threads:[~2006-06-21 17:02 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-21 16:28 Eric Sesterhenn
2006-06-21 17:05 ` Randy.Dunlap [this message]
2006-06-21 17:13 ` Memory corruption in 8390.c ? (was Re: Possible leaks in network drivers) Alan Cox
2006-06-21 17:23 ` Memory corruption in 8390.c ? Ben Pfaff
2006-06-21 17:54 ` Alan Cox
2006-06-21 18:03 ` Ben Pfaff
2006-06-21 20:50 ` Alan Cox
2006-06-21 17:59 ` PATCH: Re: Memory corruption in 8390.c ? (and hp100 xirc2ps smc9194 ....) Alan Cox
2006-06-21 19:00 ` Olivier Galibert
2006-06-21 17:50 ` Possible leaks in network drivers Eric Sesterhenn
2006-06-22 1:41 ` Herbert Xu
2006-06-22 0:55 ` Memory corruption in 8390.c ? (was Re: Possible leaks in network drivers) Herbert Xu
2006-06-22 2:30 ` Herbert Xu
2006-06-22 8:22 ` Jeff Garzik
2006-06-22 8:29 ` Herbert Xu
2006-06-22 8:57 ` Jeff Garzik
2006-06-22 9:02 ` Herbert Xu
2006-06-22 9:12 ` Herbert Xu
2006-06-22 8:26 ` Memory corruption in 8390.c ? David Miller
2006-06-22 8:30 ` Herbert Xu
2006-06-22 8:34 ` David Miller
2006-06-22 11:34 ` Alan Cox
2006-06-22 11:29 ` Herbert Xu
2006-06-22 13:25 ` Alan Cox
2006-06-23 3:32 ` Jeff Garzik
2006-06-22 11:33 ` Arjan van de Ven
2006-06-22 12:00 ` Erik Mouw
2006-06-22 13:10 ` Alan Cox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060621100525.bb4f76f4.rdunlap@xenotime.net \
--to=rdunlap@xenotime.net \
--cc=linux-kernel@vger.kernel.org \
--cc=snakebyte@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®