summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2010-02-04 13:00:20 +0000
committerjsg <jsg@openbsd.org>2010-02-04 13:00:20 +0000
commit4173f6aafdf1da35603097d2702cae70c3b8d7b2 (patch)
tree66d042d368becf3265747ecc2dca88edee3cbde9
parentno -S option; from Daniel Dickman (diff)
downloadwireguard-openbsd-4173f6aafdf1da35603097d2702cae70c3b8d7b2.tar.xz
wireguard-openbsd-4173f6aafdf1da35603097d2702cae70c3b8d7b2.zip
In event_again() call event_del() before calling event_set() so we
don't get into a situation where we are calling event_set() on an event that was already added. ok claudio@
-rw-r--r--usr.sbin/relayd/relayd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.sbin/relayd/relayd.c b/usr.sbin/relayd/relayd.c
index b0e89f61460..325806eb3e3 100644
--- a/usr.sbin/relayd/relayd.c
+++ b/usr.sbin/relayd/relayd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: relayd.c,v 1.94 2010/01/11 06:40:14 jsg Exp $ */
+/* $OpenBSD: relayd.c,v 1.95 2010/02/04 13:00:20 jsg Exp $ */
/*
* Copyright (c) 2007, 2008 Reyk Floeter <reyk@openbsd.org>
@@ -984,6 +984,7 @@ event_again(struct event *ev, int fd, short event,
if (timercmp(&tv_next, &tv, >))
bcopy(&tv_next, &tv, sizeof(tv));
+ event_del(ev);
event_set(ev, fd, event, fn, arg);
event_add(ev, &tv);
}