summaryrefslogtreecommitdiff
path: root/security/ipsec-tools/files/wildcard-psk-oakley.c.diff
diff options
context:
space:
mode:
authorEugene Grosbein <eugen@FreeBSD.org>2019-07-01 04:49:33 +0000
committerEugene Grosbein <eugen@FreeBSD.org>2019-07-01 04:49:33 +0000
commitbea4f8a142ae79bd8709d52e10462a3031a4a2b8 (patch)
tree67ebcf718adb33c575b07fd46dc4918ccaf317da /security/ipsec-tools/files/wildcard-psk-oakley.c.diff
parentdevel/py-adb: update to 1.3.0.7 (snapshot) (diff)
security/ipsec-tools: fix aggressive mode tunnels with wildcard-psk config
Wilcard patch exposures existing bug where agressive tunnels using ip addresses for identification were not matching the entry in the PSK file, due to the identifier not being cast to a 'xxx.xxx.xxx.xxx' notation. PR: 203308 Submitted by: andywhite@gmail.com (based on)
Notes
Notes: svn path=/head/; revision=505537
Diffstat (limited to 'security/ipsec-tools/files/wildcard-psk-oakley.c.diff')
-rw-r--r--security/ipsec-tools/files/wildcard-psk-oakley.c.diff22
1 files changed, 22 insertions, 0 deletions
diff --git a/security/ipsec-tools/files/wildcard-psk-oakley.c.diff b/security/ipsec-tools/files/wildcard-psk-oakley.c.diff
new file mode 100644
index 000000000000..ca32e5dc4e02
--- /dev/null
+++ b/security/ipsec-tools/files/wildcard-psk-oakley.c.diff
@@ -0,0 +1,22 @@
+--- src/racoon/oakley.c.orig 2012-08-29 18:35:09.000000000 +0700
++++ src/racoon/oakley.c 2019-07-01 11:03:18.864245000 +0700
+@@ -2400,7 +2400,19 @@ oakley_skeyid(iph1)
+ case OAKLEY_ATTR_AUTH_METHOD_XAUTH_PSKEY_R:
+ #endif
+ if (iph1->etype != ISAKMP_ETYPE_IDENT) {
++ struct ipsecdoi_id_b *id_b;
++
++ id_b = (struct ipsecdoi_id_b *)iph1->id_p->v;
++ if (id_b->type != IPSECDOI_ID_IPV4_ADDR &&
++ id_b->type != IPSECDOI_ID_IPV6_ADDR)
+ iph1->authstr = getpskbyname(iph1->id_p);
++ else {
++ struct sockaddr addr;
++ u_int16_t ul_proto;
++ u_int8_t prefix;
++ if (!ipsecdoi_id2sockaddr(iph1->id_p, &addr, &prefix, &ul_proto))
++ iph1->authstr = getpskbyaddr(&addr);
++ }
+ if (iph1->authstr == NULL) {
+ if (iph1->rmconf->verify_identifier) {
+ plog(LLV_ERROR, LOCATION, iph1->remote,