summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkus <markus@openbsd.org>2005-02-24 16:05:42 +0000
committermarkus <markus@openbsd.org>2005-02-24 16:05:42 +0000
commite569bb0f22481e9a3ccd6d2a34eb44a7da109cdc (patch)
tree6334b394f948d44cea8150565824528e125a9777
parentadd carp(4) to SEE ALSO; (diff)
downloadwireguard-openbsd-e569bb0f22481e9a3ccd6d2a34eb44a7da109cdc.tar.xz
wireguard-openbsd-e569bb0f22481e9a3ccd6d2a34eb44a7da109cdc.zip
dpd_find_sa: only ready SAs, otherwise DPD will delete SAs owned by
an exchange; ok hshoexer
-rw-r--r--sbin/isakmpd/dpd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sbin/isakmpd/dpd.c b/sbin/isakmpd/dpd.c
index ebcbf642b8a..6c355777f02 100644
--- a/sbin/isakmpd/dpd.c
+++ b/sbin/isakmpd/dpd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dpd.c,v 1.7 2004/12/28 15:15:08 deraadt Exp $ */
+/* $OpenBSD: dpd.c,v 1.8 2005/02/24 16:05:42 markus Exp $ */
/*
* Copyright (c) 2004 Håkan Olsson. All rights reserved.
@@ -245,7 +245,7 @@ dpd_find_sa(struct sa *sa, void *v_sa)
if (!isakmp_sa->id_i || !isakmp_sa->id_r)
return (0);
- return (sa->phase == 2 &&
+ return (sa->phase == 2 && (sa->flags & SA_FLAG_READY) &&
memcmp(sa->id_i, isakmp_sa->id_i, sa->id_i_len) == 0 &&
memcmp(sa->id_r, isakmp_sa->id_r, sa->id_r_len) == 0);
}