From 4a262bfe4d9317b6ee4ed4304fcac386b35d5eee Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 27 Mar 2025 11:15:31 +0000 Subject: [PATCH] archive write: Fetch length of serialized JSON string from libjson-c Signed-off-by: Michael Tremer --- src/pakfire/archive_writer.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pakfire/archive_writer.c b/src/pakfire/archive_writer.c index 660e1b75..cb7c3c60 100644 --- a/src/pakfire/archive_writer.c +++ b/src/pakfire/archive_writer.c @@ -672,16 +672,21 @@ ERROR: int pakfire_archive_writer_create_file_from_json( struct pakfire_archive_writer* self, const char* path, mode_t mode, struct json_object* json) { const char* buffer = NULL; + size_t length = 0; + + // We must have some JSON data + if (!json) + return -EINVAL; // Serialize JSON to string - buffer = json_object_to_json_string_ext(json, 0); + buffer = json_object_to_json_string_length(json, 0, &length); if (!buffer) { ERROR(self->ctx, "Failed to serialize JSON object: %m\n"); return -errno; } // Write it to the archive - return pakfire_archive_writer_create_file(self, path, mode, buffer, strlen(buffer)); + return pakfire_archive_writer_create_file(self, path, mode, buffer, length); } int pakfire_archive_writer_create_file_from_file( -- 2.39.5