summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryasuoka <yasuoka@openbsd.org>2017-05-30 16:30:22 +0000
committeryasuoka <yasuoka@openbsd.org>2017-05-30 16:30:22 +0000
commit7eacecc07e75f1e569a66bf418e5c892bff718d1 (patch)
tree405b591d6be9039862c072e290c3b6da4eb8d867
parentImprove the new ieee80211_{min,max}_rates() APIs and fix regressions. (diff)
downloadwireguard-openbsd-7eacecc07e75f1e569a66bf418e5c892bff718d1.tar.xz
wireguard-openbsd-7eacecc07e75f1e569a66bf418e5c892bff718d1.zip
Don't call TAILQ_REMOVE twice. This caused radiusd crash if it has a
pending request when it stops.
-rw-r--r--usr.sbin/radiusd/radiusd_radius.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/usr.sbin/radiusd/radiusd_radius.c b/usr.sbin/radiusd/radiusd_radius.c
index 7dafb2d2c24..474198bc63e 100644
--- a/usr.sbin/radiusd/radiusd_radius.c
+++ b/usr.sbin/radiusd/radiusd_radius.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: radiusd_radius.c,v 1.12 2016/03/21 00:49:36 guenther Exp $ */
+/* $OpenBSD: radiusd_radius.c,v 1.13 2017/05/30 16:30:22 yasuoka Exp $ */
/*
* Copyright (c) 2013 Internet Initiative Japan Inc.
@@ -262,10 +262,8 @@ module_radius_stop(void *ctx)
struct module_radius_req *req, *treq;
struct module_radius *module = ctx;
- TAILQ_FOREACH_SAFE(req, &module->req, next, treq) {
+ TAILQ_FOREACH_SAFE(req, &module->req, next, treq)
module_radius_req_on_failure(req);
- TAILQ_REMOVE(&module->req, req, next);
- }
for (i = 0; i < module->nserver; i++)
radius_server_stop(&module->server[i]);