From d8ad2490813fa010fdce4e2aab830ccbf8e1650c Mon Sep 17 00:00:00 2001 From: dietWall Date: Wed, 29 Oct 2025 17:42:55 +0000 Subject: [PATCH 1/3] more destinction between return values --- src/flb_pack.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/flb_pack.c b/src/flb_pack.c index 2dc3d1e38e7..5cf329a93ff 100644 --- a/src/flb_pack.c +++ b/src/flb_pack.c @@ -1478,7 +1478,7 @@ char *flb_msgpack_to_json_str(size_t size, const msgpack_object *obj, int escape while (1) { ret = flb_msgpack_to_json(buf, size, obj, escape_unicode); - if (ret <= 0) { + if (ret < 0) { /* buffer is small. retry.*/ size *= 2; tmp = flb_realloc(buf, size); @@ -1491,6 +1491,12 @@ char *flb_msgpack_to_json_str(size_t size, const msgpack_object *obj, int escape return NULL; } } + else if (ret == 0) { + /* nothing to pack */ + flb_warn("failed to convert msgpack to json"); + flb_free(buf); + return NULL; + } else { break; } From 2a111b9ce4954a2bac7a42ea8230406ff73e847e Mon Sep 17 00:00:00 2001 From: dietWall Date: Wed, 29 Oct 2025 17:45:02 +0000 Subject: [PATCH 2/3] additional logging message --- src/flb_pack.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/flb_pack.c b/src/flb_pack.c index 5cf329a93ff..65c2cb5445f 100644 --- a/src/flb_pack.c +++ b/src/flb_pack.c @@ -1481,6 +1481,7 @@ char *flb_msgpack_to_json_str(size_t size, const msgpack_object *obj, int escape if (ret < 0) { /* buffer is small. retry.*/ size *= 2; + flb_info("failed to convert msgpack to json, retrying with new size=%zu", size); tmp = flb_realloc(buf, size); if (tmp) { buf = tmp; From e08b45afe7f21604f3b09b185ca06684ce1a566b Mon Sep 17 00:00:00 2001 From: dietWall Date: Wed, 29 Oct 2025 17:59:32 +0000 Subject: [PATCH 3/3] better error message --- src/flb_pack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flb_pack.c b/src/flb_pack.c index 65c2cb5445f..446bc05c96f 100644 --- a/src/flb_pack.c +++ b/src/flb_pack.c @@ -1494,7 +1494,7 @@ char *flb_msgpack_to_json_str(size_t size, const msgpack_object *obj, int escape } else if (ret == 0) { /* nothing to pack */ - flb_warn("failed to convert msgpack to json"); + flb_warn("unexpected result from flb_msgpack_to_json: 0"); flb_free(buf); return NULL; }