diff options
author | Jouni Malinen <j@w1.fi> | 2016-06-12 21:35:12 (GMT) |
---|---|---|
committer | Jouni Malinen <j@w1.fi> | 2016-06-12 21:37:14 (GMT) |
commit | 976dfb32377c243c7d245ec2933f37f6c18ce23b (patch) | |
tree | bcb1610718a7afb96cc89b6681eac7acbc89ef07 /src/fst | |
parent | 0b1b2044cc6c0edd016ab934270b5527ed9314bf (diff) | |
download | hostap-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>
Diffstat (limited to 'src/fst')
-rw-r--r-- | src/fst/fst.c | 6 |
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; } |