Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Nov 2016 18:20:28 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r308930 - projects/ipsec/sys/netipsec
Message-ID:  <201611211820.uALIKSAY086871@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Mon Nov 21 18:20:28 2016
New Revision: 308930
URL: https://svnweb.freebsd.org/changeset/base/308930

Log:
  Introduce SADB_CHECKHDR() and SADB_CHECKLEN() macros.
  
  SADB_CHECKHDR() will be used to check presence of specified SADB extension
  header. SADB_CHECKLEN() checks that specified header has correct length.

Modified:
  projects/ipsec/sys/netipsec/key.c

Modified: projects/ipsec/sys/netipsec/key.c
==============================================================================
--- projects/ipsec/sys/netipsec/key.c	Mon Nov 21 18:13:10 2016	(r308929)
+++ projects/ipsec/sys/netipsec/key.c	Mon Nov 21 18:20:28 2016	(r308930)
@@ -296,6 +296,11 @@ static const int maxsize[] = {
 	sizeof(struct sadb_x_nat_t_frag),/* SADB_X_EXT_NAT_T_FRAG */
 };
 
+#define	SADB_CHECKLEN(_mhp, _ext)			\
+    ((_mhp)->extlen[(_ext)] < minsize[(_ext)] || (maxsize[(_ext)] != 0 && \
+	((_mhp)->extlen[(_ext)] > maxsize[(_ext)])))
+#define	SADB_CHECKHDR(_mhp, _ext)	((_mhp)->ext[(_ext)] == NULL)
+
 static VNET_DEFINE(int, ipsec_esp_keymin) = 256;
 static VNET_DEFINE(int, ipsec_esp_auth) = 0;
 static VNET_DEFINE(int, ipsec_ah_keymin) = 128;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611211820.uALIKSAY086871>