summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2004-12-10 07:51:14 +0000
committerglebius <glebius@FreeBSD.org>2004-12-10 07:51:14 +0000
commit16a5d8193f49035546afed8c166c4548d208f9ee (patch)
treeac6a02d0735a468db9904e7613e16e79b9868a56 /sys/netinet
parentc08591ffd6bea89df080313bd3310d8170c2517b (diff)
downloadFreeBSD-src-16a5d8193f49035546afed8c166c4548d208f9ee.zip
FreeBSD-src-16a5d8193f49035546afed8c166c4548d208f9ee.tar.gz
In certain cases ip_output() can free our route, so check
for its presence before RTFREE(). Noticed by: ru
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/in_gif.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/in_gif.c b/sys/netinet/in_gif.c
index 41e7691..3043c80 100644
--- a/sys/netinet/in_gif.c
+++ b/sys/netinet/in_gif.c
@@ -210,7 +210,8 @@ in_gif_output(ifp, family, m)
error = ip_output(m, NULL, &sc->gif_ro, 0, NULL, NULL);
- if ((sc->gif_if.if_flags & IFF_LINK0) == 0) {
+ if (!(sc->gif_if.if_flags & IFF_LINK0) &&
+ sc->gif_ro.ro_rt != NULL) {
RTFREE(sc->gif_ro.ro_rt);
sc->gif_ro.ro_rt = NULL;
}
OpenPOWER on IntegriCloud