Fix panics with misconfigured routing:

- Backout previous revision, the check is useless.
- Turn node to queue mode, since it is edge node.

Reported by:	sem
This commit is contained in:
Gleb Smirnoff 2005-04-18 11:32:17 +00:00
parent dac263a70e
commit bc90ff47ff
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=145229

View File

@ -596,6 +596,14 @@ ng_ksocket_newhook(node_p node, hook_p hook, const char *name0)
/* OK */
priv->hook = hook;
/*
* In case of misconfigured routing a packet may reenter
* ksocket node recursively. Decouple stack to avoid possible
* panics about sleeping with locks held.
*/
NG_HOOK_FORCE_QUEUE(hook);
return(0);
}
@ -897,12 +905,6 @@ ng_ksocket_rcvdata(hook_p hook, item_p item)
struct mbuf *m;
struct sa_tag *stag;
/* Avoid reentrantly sending on the socket */
if (SOCKBUF_OWNED(&so->so_snd)) {
NG_FREE_ITEM(item);
return (EDEADLK);
}
/* Extract data */
NGI_GET_M(item, m);
NG_FREE_ITEM(item);