summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/ip/sadb.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/inet/ip/sadb.c')
-rw-r--r--usr/src/uts/common/inet/ip/sadb.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/src/uts/common/inet/ip/sadb.c b/usr/src/uts/common/inet/ip/sadb.c
index b56f09d029..a45f69c19e 100644
--- a/usr/src/uts/common/inet/ip/sadb.c
+++ b/usr/src/uts/common/inet/ip/sadb.c
@@ -4468,7 +4468,9 @@ sadb_check_kmc(ipsa_query_t *sq, ipsa_t *sa, int *diagnostic)
return (EINVAL);
}
- if ((kmc != 0) && (sa->ipsa_kmc != 0) && (sa->ipsa_kmc != kmc)) {
+ /* Allow IKEv2 KMCs to update the kmc value for rekeying */
+ if ((kmp != SADB_X_KMP_IKEV2) && (kmc != 0) && (sa->ipsa_kmc != 0) &&
+ (sa->ipsa_kmc != kmc)) {
*diagnostic = SADB_X_DIAGNOSTIC_DUPLICATE_KMC;
return (EINVAL);
}