Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/netipsec Clarify IPIP: ipe4_xformsw is not allowed to ca...



details:   https://anonhg.NetBSD.org/src/rev/7aa4f02dac16
branches:  trunk
changeset: 322551:7aa4f02dac16
user:      maxv <maxv%NetBSD.org@localhost>
date:      Mon May 07 09:08:06 2018 +0000

description:
Clarify IPIP: ipe4_xformsw is not allowed to call ipip_output, so replace
the pointer by ipe4_output, which just panics. Group the ipe4_* functions
together. Localify other functions.

ok ozaki-r@

diffstat:

 sys/netipsec/xform.h      |   4 +-
 sys/netipsec/xform_ipip.c |  91 +++++++++++++++++++++++++---------------------
 2 files changed, 51 insertions(+), 44 deletions(-)

diffs (154 lines):

diff -r 3c6448617af8 -r 7aa4f02dac16 sys/netipsec/xform.h
--- a/sys/netipsec/xform.h      Sun May 06 20:55:42 2018 +0000
+++ b/sys/netipsec/xform.h      Mon May 07 09:08:06 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: xform.h,v 1.16 2018/05/01 08:08:46 maxv Exp $  */
+/*     $NetBSD: xform.h,v 1.17 2018/05/07 09:08:06 maxv Exp $  */
 /*     $FreeBSD: xform.h,v 1.1.4.1 2003/01/24 05:11:36 sam Exp $       */
 /*     $OpenBSD: ip_ipsp.h,v 1.119 2002/03/14 01:27:11 millert Exp $   */
 /*
@@ -92,8 +92,6 @@
 struct cryptoini;
 
 /* XF_IP4 */
-int ip4_input6(struct mbuf **m, int *offp, int proto, void *);
-void ip4_input(struct mbuf *m, int, int, void *);
 int ipip_output(struct mbuf *, const struct ipsecrequest *, struct secasvar *,
     struct mbuf **, int, int);
 
diff -r 3c6448617af8 -r 7aa4f02dac16 sys/netipsec/xform_ipip.c
--- a/sys/netipsec/xform_ipip.c Sun May 06 20:55:42 2018 +0000
+++ b/sys/netipsec/xform_ipip.c Mon May 07 09:08:06 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: xform_ipip.c,v 1.70 2018/04/29 14:35:35 maxv Exp $     */
+/*     $NetBSD: xform_ipip.c,v 1.71 2018/05/07 09:08:06 maxv Exp $     */
 /*     $FreeBSD: xform_ipip.c,v 1.3.2.1 2003/01/24 05:11:36 sam Exp $  */
 /*     $OpenBSD: ip_ipip.c,v 1.25 2002/06/10 18:04:55 itojun Exp $ */
 
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xform_ipip.c,v 1.70 2018/04/29 14:35:35 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xform_ipip.c,v 1.71 2018/05/07 09:08:06 maxv Exp $");
 
 /*
  * IP-inside-IP processing
@@ -90,12 +90,10 @@
 int ipip_spoofcheck = 1;
 percpu_t *ipipstat_percpu;
 
-void ipe4_attach(void);
-
 static void _ipip_input(struct mbuf *, int);
 
 #ifdef INET6
-int
+static int
 ip4_input6(struct mbuf **m, int *offp, int proto, void *eparg __unused)
 {
        _ipip_input(*m, *offp);
@@ -104,7 +102,7 @@
 #endif
 
 #ifdef INET
-void
+static void
 ip4_input(struct mbuf *m, int off, int proto, void *eparg __unused)
 {
        _ipip_input(m, off);
@@ -517,41 +515,6 @@
        return error;
 }
 
-static int
-ipe4_init(struct secasvar *sav, const struct xformsw *xsp)
-{
-       sav->tdb_xform = xsp;
-       return 0;
-}
-
-static int
-ipe4_zeroize(struct secasvar *sav)
-{
-       sav->tdb_xform = NULL;
-       return 0;
-}
-
-static int
-ipe4_input(struct mbuf *m, struct secasvar *sav, int skip, int protoff)
-{
-       /* This is a rather serious mistake, so no conditional printing. */
-       printf("%s: should never be called\n", __func__);
-       if (m)
-               m_freem(m);
-       return EOPNOTSUPP;
-}
-
-static struct xformsw ipe4_xformsw = {
-       .xf_type        = XF_IP4,
-       .xf_flags       = 0,
-       .xf_name        = "IPv4 Simple Encapsulation",
-       .xf_init        = ipe4_init,
-       .xf_zeroize     = ipe4_zeroize,
-       .xf_input       = ipe4_input,
-       .xf_output      = ipip_output,
-       .xf_next        = NULL,
-};
-
 #ifdef INET
 static struct encapsw ipe4_encapsw = {
        .encapsw4 = {
@@ -584,6 +547,52 @@
        return ((m->m_flags & M_IPSEC) != 0 ? 1 : 0);
 }
 
+/* -------------------------------------------------------------------------- */
+
+static int
+ipe4_init(struct secasvar *sav, const struct xformsw *xsp)
+{
+       sav->tdb_xform = xsp;
+       return 0;
+}
+
+static int
+ipe4_zeroize(struct secasvar *sav)
+{
+       sav->tdb_xform = NULL;
+       return 0;
+}
+
+static int
+ipe4_input(struct mbuf *m, struct secasvar *sav, int skip, int protoff)
+{
+       /* This is a rather serious mistake, so no conditional printing. */
+       printf("%s: should never be called\n", __func__);
+       if (m)
+               m_freem(m);
+       return EOPNOTSUPP;
+}
+
+static int
+ipe4_output(struct mbuf *m, const struct ipsecrequest *isr,
+    struct secasvar *sav, struct mbuf **mp, int skip, int protoff)
+{
+       panic("%s: should not have been called", __func__);
+}
+
+static struct xformsw ipe4_xformsw = {
+       .xf_type        = XF_IP4,
+       .xf_flags       = 0,
+       .xf_name        = "IPv4 Simple Encapsulation",
+       .xf_init        = ipe4_init,
+       .xf_zeroize     = ipe4_zeroize,
+       .xf_input       = ipe4_input,
+       .xf_output      = ipe4_output,
+       .xf_next        = NULL,
+};
+
+/* -------------------------------------------------------------------------- */
+
 void
 ipe4_attach(void)
 {



Home | Main Index | Thread Index | Old Index