diff options
-rw-r--r-- | src/testing/testing_api_cmd_change_auth.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/testing/testing_api_cmd_change_auth.c b/src/testing/testing_api_cmd_change_auth.c index 588eaa730..c3a60a1da 100644 --- a/src/testing/testing_api_cmd_change_auth.c +++ b/src/testing/testing_api_cmd_change_auth.c @@ -90,6 +90,22 @@ authchange_run (void *cls, /** + * Call GNUNET_CURL_fini(). Done as a separate task to + * ensure that all of the command's cleanups have been + * executed first. See #7151. + * + * @param cls a `struct GNUNET_CURL_Context *` to clean up. + */ +static void +deferred_cleanup_cb (void *cls) +{ + struct GNUNET_CURL_Context *ctx = cls; + + GNUNET_CURL_fini (ctx); +} + + +/** * Cleanup the state from a "authchange" CMD. * * @param cls closure. @@ -104,7 +120,8 @@ authchange_cleanup (void *cls, (void) cmd; if (NULL != ss->old_ctx) { - GNUNET_CURL_fini (ss->old_ctx); + (void) GNUNET_SCHEDULER_add_now (&deferred_cleanup_cb, + ss->old_ctx); ss->old_ctx = NULL; } GNUNET_free (ss); |