Module Name: src Committed By: ozaki-r Date: Wed Jul 19 06:30:33 UTC 2017
Modified Files: src/sys/netipsec: ipsec.c Log Message: Remove invalid M_AUTHIPDGM check on ESP isr->sav M_AUTHIPDGM flag is set to a mbuf in ah_input_cb. An sav of ESP can have AH authentication as sav->tdb_authalgxform. However, in that case esp_input and esp_input_cb are used to do ESP decryption and AH authentication and M_AUTHIPDGM never be set to a mbuf. So checking M_AUTHIPDGM of a mbuf on isr->sav of ESP is meaningless. To generate a diff of this commit: cvs rdiff -u -r1.104 -r1.105 src/sys/netipsec/ipsec.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/netipsec/ipsec.c diff -u src/sys/netipsec/ipsec.c:1.104 src/sys/netipsec/ipsec.c:1.105 --- src/sys/netipsec/ipsec.c:1.104 Tue Jul 18 09:00:55 2017 +++ src/sys/netipsec/ipsec.c Wed Jul 19 06:30:32 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ipsec.c,v 1.104 2017/07/18 09:00:55 ozaki-r Exp $ */ +/* $NetBSD: ipsec.c,v 1.105 2017/07/19 06:30:32 ozaki-r Exp $ */ /* $FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/netipsec/ipsec.c,v 1.2.2.2 2003/07/01 01:38:13 sam Exp $ */ /* $KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $ */ @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.104 2017/07/18 09:00:55 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ipsec.c,v 1.105 2017/07/19 06:30:32 ozaki-r Exp $"); /* * IPsec controller part. @@ -1737,7 +1737,6 @@ int ipsec_in_reject(const struct secpolicy *sp, const struct mbuf *m) { struct ipsecrequest *isr; - int need_auth; if (KEYDEBUG_ON(KEYDEBUG_IPSEC_DATA)) { printf("%s: using SP\n", __func__); @@ -1758,7 +1757,6 @@ ipsec_in_reject(const struct secpolicy * /* XXX should compare policy against ipsec header history */ - need_auth = 0; for (isr = sp->req; isr != NULL; isr = isr->next) { if (ipsec_get_reqlevel(isr) != IPSEC_LEVEL_REQUIRE) continue; @@ -1769,18 +1767,8 @@ ipsec_in_reject(const struct secpolicy * "ESP m_flags:%x\n", m->m_flags); return 1; } - - if (!need_auth && - isr->sav != NULL && - isr->sav->tdb_authalgxform != NULL && - (m->m_flags & M_AUTHIPDGM) == 0) { - KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, - "ESP/AH m_flags:%x\n", m->m_flags); - return 1; - } break; case IPPROTO_AH: - need_auth = 1; if ((m->m_flags & M_AUTHIPHDR) == 0) { KEYDEBUG_PRINTF(KEYDEBUG_IPSEC_DUMP, "AH m_flags:%x\n", m->m_flags);