commit 5026518bb5a6c47b9278eede81989ca0fba7094a
parent 5017dacbdaac2d1654b01329f97b8b5b7dc34ba9
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 27 Aug 2021 16:17:45 +0200
-fix another leak
Diffstat:
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/include/taler_mhd_lib.h b/src/include/taler_mhd_lib.h
@@ -212,6 +212,16 @@ TALER_MHD_make_json (const json_t *json);
/**
+ * Make JSON response object and free @a json.
+ *
+ * @param json the json object, freed.
+ * @return MHD response object
+ */
+struct MHD_Response *
+TALER_MHD_make_json_steal (json_t *json);
+
+
+/**
* Make JSON response object.
*
* @param fmt format string for pack
@@ -230,7 +240,7 @@ TALER_MHD_make_json_pack (const char *fmt,
* @return MHD response object
*/
#define TALER_MHD_MAKE_JSON_PACK(...) \
- TALER_MHD_make_json (GNUNET_JSON_PACK (__VA_ARGS__))
+ TALER_MHD_make_json_steal (GNUNET_JSON_PACK (__VA_ARGS__))
/**
diff --git a/src/mhd/mhd_responses.c b/src/mhd/mhd_responses.c
@@ -148,6 +148,17 @@ TALER_MHD_make_json (const json_t *json)
}
+struct MHD_Response *
+TALER_MHD_make_json_steal (json_t *json)
+{
+ struct MHD_Response *res;
+
+ res = TALER_MHD_make_json (json);
+ json_decref (json);
+ return res;
+}
+
+
MHD_RESULT
TALER_MHD_reply_json (struct MHD_Connection *connection,
const json_t *json,