Module Name: src Committed By: knakahara Date: Wed Mar 14 07:56:32 UTC 2018
Modified Files: src/sys/netinet6: in6_gif.c Log Message: Fix error checking in in6_gif_ctlinput(). if_gif.c:r1.133 introduces gif_update_variant() which ensure ifp->if_flags is set IFF_RUNNING when gif_softc->gif_var->gv_{psrc,pdst} are not null. So, in6_gif_ctlinput() is not required IFF_RUNNING checking. In contrast, it is required gv_{psrc,pdst} NULL checking. To generate a diff of this commit: cvs rdiff -u -r1.90 -r1.91 src/sys/netinet6/in6_gif.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet6/in6_gif.c diff -u src/sys/netinet6/in6_gif.c:1.90 src/sys/netinet6/in6_gif.c:1.91 --- src/sys/netinet6/in6_gif.c:1.90 Wed Jan 10 11:13:26 2018 +++ src/sys/netinet6/in6_gif.c Wed Mar 14 07:56:32 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: in6_gif.c,v 1.90 2018/01/10 11:13:26 knakahara Exp $ */ +/* $NetBSD: in6_gif.c,v 1.91 2018/03/14 07:56:32 knakahara Exp $ */ /* $KAME: in6_gif.c,v 1.62 2001/07/29 04:27:25 itojun Exp $ */ /* @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: in6_gif.c,v 1.90 2018/01/10 11:13:26 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: in6_gif.c,v 1.91 2018/03/14 07:56:32 knakahara Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -459,9 +459,11 @@ in6_gif_ctlinput(int cmd, const struct s if (!ip6) return NULL; - if ((sc->gif_if.if_flags & IFF_RUNNING) == 0) - return NULL; var = gif_getref_variant(sc, &psref); + if (var->gv_psrc == NULL || var->gv_pdst == NULL) { + gif_putref_variant(var, &psref); + return NULL; + } if (var->gv_psrc->sa_family != AF_INET6) { gif_putref_variant(var, &psref); return NULL;