From b52cf1015eaa4d759c9377df35a56988655dce89 Mon Sep 17 00:00:00 2001 From: dequis Date: Wed, 28 Mar 2018 22:40:17 -0300 Subject: otr: add KEY_GEN_STARTED state to avoid starting it twice Fun race condition there, got this when testing with the jabber xmlconsole open in bitlbee --- src/otr/key.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/otr/key.c b/src/otr/key.c index 4032b0b2..7fee4084 100644 --- a/src/otr/key.c +++ b/src/otr/key.c @@ -43,9 +43,10 @@ */ enum key_gen_status { KEY_GEN_IDLE = 0, - KEY_GEN_RUNNING = 1, - KEY_GEN_FINISHED = 2, - KEY_GEN_ERROR = 3, + KEY_GEN_STARTED = 1, + KEY_GEN_RUNNING = 2, + KEY_GEN_FINISHED = 3, + KEY_GEN_ERROR = 4, }; /* @@ -208,6 +209,7 @@ void key_gen_run(struct otr_user_state *ustate, const char *account_name) /* Make sure the pointer does not go away during the proess. */ key_gen_state.account_name = strdup(account_name); key_gen_state.ustate = ustate; + key_gen_state.status = KEY_GEN_STARTED; /* Creating key file path. */ key_gen_state.key_file_path = file_path_build(OTR_KEYFILE); -- cgit v1.2.3