Sean Boudreau
2007-08-13 20:43:21 UTC
Hi:
gre_output() isn't checking IFF_RUNNING | IFF_UP
properly. The interesting case is when gre_compute_route()
fails and IFF_RUNNING is knocked down but IFF_UP is left
set. A recursion lock up can result.
Any objections before I commit?
-seanb
Index: net/if_gre.c
===================================================================
RCS file: /cvsroot/src/sys/net/if_gre.c,v
retrieving revision 1.98
diff -r1.98 if_gre.c
611c611,612
< if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == 0 ||
---
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
gre_output() isn't checking IFF_RUNNING | IFF_UP
properly. The interesting case is when gre_compute_route()
fails and IFF_RUNNING is knocked down but IFF_UP is left
set. A recursion lock up can result.
Any objections before I commit?
-seanb
Index: net/if_gre.c
===================================================================
RCS file: /cvsroot/src/sys/net/if_gre.c,v
retrieving revision 1.98
diff -r1.98 if_gre.c
611c611,612
< if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) == 0 ||
---
if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) !=
(IFF_UP | IFF_RUNNING) ||
--(IFF_UP | IFF_RUNNING) ||
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de