diff options
author | ru <ru@FreeBSD.org> | 2007-03-08 21:10:53 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2007-03-08 21:10:53 +0000 |
commit | 42f2b268fddb1dbaba47c239fdfa67651e6a8e16 (patch) | |
tree | c977159206ea1cdc5b644bd01a073be806d193fa | |
parent | 586626109703a0b678541b88c583f2c26de8363a (diff) | |
download | FreeBSD-src-42f2b268fddb1dbaba47c239fdfa67651e6a8e16.zip FreeBSD-src-42f2b268fddb1dbaba47c239fdfa67651e6a8e16.tar.gz |
ng_send_fn() can return with an error, the function of interest
will never be called and OACTIVE will never be reset. Fix this.
Submitted by: Vsevolod Lobko
MFC after: 3 days
-rw-r--r-- | sys/netgraph/ng_eiface.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netgraph/ng_eiface.c b/sys/netgraph/ng_eiface.c index bef1c26..a38abe3 100644 --- a/sys/netgraph/ng_eiface.c +++ b/sys/netgraph/ng_eiface.c @@ -277,7 +277,8 @@ ng_eiface_start(struct ifnet *ifp) ifp->if_drv_flags |= IFF_DRV_OACTIVE; - ng_send_fn(priv->node, NULL, &ng_eiface_start2, ifp, 0); + if (ng_send_fn(priv->node, NULL, &ng_eiface_start2, ifp, 0) != 0) + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; } #ifdef DEBUG |