commit 9b7716f9f2f8b3b4661ff07c891c8077e715062b
parent 6505f6986939a18814fc5ad7a54d5aaa5e6cbfd4
Author: Christian Grothoff <grothoff@gnunet.org>
Date: Wed, 23 Mar 2022 05:19:09 +0100
fix #7151
Diffstat:
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git 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);