Re: [1/1] netlink: no need to crash if table does not exist.
On Tue, Mar 27, 2007 at 04:41:54PM -0700, David Miller ([EMAIL PROTECTED]) wrote: > > There is no problem as-is, but I implement unified cache for different > > sockets (currently tcp/udp/raw and netlink are supported), which does > > not use that table, so I currently wrap all access code into special > > ifdefs, this one can be wrapped too, but since it is not needed, it > > saves couple of lines of code. > > It is needed. It is there to make sure that a kernel netlink > socket is not created before the af_netlink init code runs. > > We've had sequencing bugs like that in the initcall call chain > in the past, that's why the check is there. Argh, I see. I fail to find exact commit (at least it was not in 2.4 and was created before 2.6.12), but it is ineed neeed. Thanks for explaination. -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [1/1] netlink: no need to crash if table does not exist.
From: Evgeniy Polyakov <[EMAIL PROTECTED]> Date: Wed, 21 Mar 2007 13:58:47 +0300 > On Wed, Mar 21, 2007 at 11:54:45AM +0100, Patrick McHardy ([EMAIL PROTECTED]) > wrote: > > Evgeniy Polyakov wrote: > > > We would already do that on init. > > > Some things become very confused, when nl_table is not used to store > > > netlink sockets. > > > > > > Its unnecessary, but I don't understand what the problem is. > > Why would it be NULL and what gets confused? > > There is no problem as-is, but I implement unified cache for different > sockets (currently tcp/udp/raw and netlink are supported), which does > not use that table, so I currently wrap all access code into special > ifdefs, this one can be wrapped too, but since it is not needed, it > saves couple of lines of code. It is needed. It is there to make sure that a kernel netlink socket is not created before the af_netlink init code runs. We've had sequencing bugs like that in the initcall call chain in the past, that's why the check is there. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [1/1] netlink: no need to crash if table does not exist.
On Wed, Mar 21, 2007 at 11:54:45AM +0100, Patrick McHardy ([EMAIL PROTECTED]) wrote: > Evgeniy Polyakov wrote: > > We would already do that on init. > > Some things become very confused, when nl_table is not used to store > > netlink sockets. > > > Its unnecessary, but I don't understand what the problem is. > Why would it be NULL and what gets confused? There is no problem as-is, but I implement unified cache for different sockets (currently tcp/udp/raw and netlink are supported), which does not use that table, so I currently wrap all access code into special ifdefs, this one can be wrapped too, but since it is not needed, it saves couple of lines of code. -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [1/1] netlink: no need to crash if table does not exist.
Evgeniy Polyakov wrote: > We would already do that on init. > Some things become very confused, when nl_table is not used to store > netlink sockets. Its unnecessary, but I don't understand what the problem is. Why would it be NULL and what gets confused? - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[1/1] netlink: no need to crash if table does not exist.
We would already do that on init. Some things become very confused, when nl_table is not used to store netlink sockets. Signed-off-by: Evgeniy Polyakov <[EMAIL PROTECTED]> 23ebdcf1f439cde050a63f33897d5b099fe08c95 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 9b69d9b..071e4d7 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1330,8 +1330,6 @@ netlink_kernel_create(int unit, unsigned int groups, struct netlink_sock *nlk; unsigned long *listeners = NULL; - BUG_ON(!nl_table); - if (unit<0 || unit>=MAX_LINKS) return NULL; -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html