Re: [1/1] netlink: no need to crash if table does not exist.

2007-03-28 Thread Evgeniy Polyakov
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.

2007-03-27 Thread David Miller
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.

2007-03-21 Thread Evgeniy Polyakov
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.

2007-03-21 Thread Patrick McHardy
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.

2007-03-21 Thread Evgeniy Polyakov
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