aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2016-06-12 21:35:12 (GMT)
committerJouni Malinen <j@w1.fi>2016-06-12 21:37:14 (GMT)
commit976dfb32377c243c7d245ec2933f37f6c18ce23b (patch)
treebcb1610718a7afb96cc89b6681eac7acbc89ef07
parent0b1b2044cc6c0edd016ab934270b5527ed9314bf (diff)
downloadhostap-976dfb32377c243c7d245ec2933f37f6c18ce23b.zip
hostap-976dfb32377c243c7d245ec2933f37f6c18ce23b.tar.gz
hostap-976dfb32377c243c7d245ec2933f37f6c18ce23b.tar.bz2
FST: Make fst_global_deinit() more robust
Verify that fst_global_init() has been called before deinitializing the global FST context. This makes it a bit easier to handle failure paths from initialization. Signed-off-by: Jouni Malinen <j@w1.fi>
-rw-r--r--src/fst/fst.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/fst/fst.c b/src/fst/fst.c
index 40430e2..32cd941 100644
--- a/src/fst/fst.c
+++ b/src/fst/fst.c
@@ -15,6 +15,7 @@
#include "fst/fst_defs.h"
#include "fst/fst_ctrl_iface.h"
+static int fst_global_initialized = 0;
struct dl_list fst_global_ctrls_list;
@@ -106,6 +107,7 @@ int fst_global_init(void)
dl_list_init(&fst_global_groups_list);
dl_list_init(&fst_global_ctrls_list);
fst_session_global_init();
+ fst_global_initialized = 1;
return 0;
}
@@ -115,6 +117,9 @@ void fst_global_deinit(void)
struct fst_group *group;
struct fst_ctrl_handle *h;
+ if (!fst_global_initialized)
+ return;
+
fst_session_global_deinit();
while ((group = fst_first_group()) != NULL)
fst_group_delete(group);
@@ -122,6 +127,7 @@ void fst_global_deinit(void)
struct fst_ctrl_handle,
global_ctrls_lentry)))
fst_global_del_ctrl(h);
+ fst_global_initialized = 0;
}