From a5dde6ea469c81cd92efda20a1fce9ccfa4a339b Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Tue, 25 Sep 2018 19:08:11 +0200 Subject: Fix cherry-pick test case. --- src/exchange/taler-exchange-httpd_keystate.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/exchange/taler-exchange-httpd_keystate.c b/src/exchange/taler-exchange-httpd_keystate.c index ce2eafa71..5af391aca 100644 --- a/src/exchange/taler-exchange-httpd_keystate.c +++ b/src/exchange/taler-exchange-httpd_keystate.c @@ -2091,6 +2091,20 @@ TEH_KS_handler_keys (struct TEH_RequestHandler *rh, ? krd->response_compressed : krd->response_uncompressed); TEH_KS_release (key_state); + + /** + * Not the best style, but needed since the logic has this + * dual behaviour: some functions touch directly the global + * variable, some others want the key state passed in the + * arguments. + * + * NOTE, this NULL-ification is needed because otherwise + * the internal key state object gets left with refcnt == 0 + * and a non-NULL global pointer to it. + */ + if (internal_key_state == key_state) + internal_key_state = NULL; + return ret; } -- cgit v1.2.3