]> git.ipfire.org Git - pakfire.git/commitdiff
archive write: Fetch length of serialized JSON string from libjson-c
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 27 Mar 2025 11:15:31 +0000 (11:15 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 27 Mar 2025 11:15:31 +0000 (11:15 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/archive_writer.c

index 660e1b753a4bd099c64209817a49456f4396930c..cb7c3c60e249b261c3fd8fc6c9aef7b4e8e1831e 100644 (file)
@@ -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(