[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090728184834.GD4678@lenovo>
Date: Tue, 28 Jul 2009 22:48:34 +0400
From: Cyrill Gorcunov <gorcunov@...il.com>
To: Eric Dumazet <eric.dumazet@...il.com>
Cc: "David S. Miller" <davem@...emloft.net>,
Pavel Emelyanov <xemul@...nvz.org>,
Igor M Podlesny <for.poige+bugzilla.kernel.org@...il.com>,
Andrew Morton <akpm@...ux-foundation.org>,
netdev@...r.kernel.org
Subject: Re: [PATCH] pppoe: fix race at init time
[Eric Dumazet - Tue, Jul 28, 2009 at 07:46:37PM +0200]
...
| So Igor still has a panic... lets try a third patch then :)
|
| [PATCH] pppoe: fix race at init time
|
| I believe we have a race in ppoe_init() :
|
| As soon as dev_add_pack(&pppoes_ptype); and/or dev_add_pack(&pppoed_ptype);
| are called, we can receive packets while nets not yet fully ready
| (ie : pppoe_init_net() not yet called)
|
| This means we should be prepared to get a NULL pointer
| from net_generic(net, pppoe_net_id) call.
|
| We miss this NULL check in get_item() and possibly crash if this nets
| has no struct pppoe_net attached yet. Other subroutines
| are safe.
Hmm. It seems the problem is not in pppoe_init_net since it's
called *before* dev_add_pack via register_pernet_gen_device
(which is protected by a global net mutex). Or I miss something?
(sorry guys I have quite a limited internet connection this week)
-- Cyrill
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists