exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

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:
Msrc/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; }