commit a5dde6ea469c81cd92efda20a1fce9ccfa4a339b parent dd298986171a47934ceeb52455c51f7ffaa1afe9 Author: Marcello Stanisci <stanisci.m@gmail.com> Date: Tue, 25 Sep 2018 19:08:11 +0200 Fix cherry-pick test case. Diffstat:
| M | src/exchange/taler-exchange-httpd_keystate.c | | | 14 | ++++++++++++++ |
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git 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; }