aboutsummaryrefslogtreecommitdiffstats
path: root/src/client/rspamc.cxx
diff options
context:
space:
mode:
authorAndrew Lewis <nerf@judo.za.org>2022-07-15 13:26:10 +0200
committerAndrew Lewis <nerf@judo.za.org>2022-07-15 13:26:10 +0200
commit43c8a6d8fe2f1c7abcdf86b30914fb60351254f2 (patch)
treebd3bd3e8160f5e2ce95ba07c1d982e781e83f7cd /src/client/rspamc.cxx
parent312c615323107e00101534be69197271e14d4e5e (diff)
downloadrspamd-43c8a6d8fe2f1c7abcdf86b30914fb60351254f2.tar.gz
rspamd-43c8a6d8fe2f1c7abcdf86b30914fb60351254f2.zip
[Minor] rspamc: fix crash on non-string element in `messages`
Diffstat (limited to 'src/client/rspamc.cxx')
-rw-r--r--src/client/rspamc.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/client/rspamc.cxx b/src/client/rspamc.cxx
index 3615d3be5..cb847bf5b 100644
--- a/src/client/rspamc.cxx
+++ b/src/client/rspamc.cxx
@@ -1030,8 +1030,16 @@ rspamc_symbols_output(FILE *out, ucl_object_t *obj)
const ucl_object_t *cmesg;
while ((cmesg = ucl_object_iterate (elt, &mit, true)) != nullptr) {
- fmt::print(out, "Message - {}: {}\n",
- ucl_object_key(cmesg), ucl_object_tostring(cmesg));
+ if (ucl_object_type(cmesg) == UCL_STRING) {
+ fmt::print(out, "Message - {}: {}\n",
+ ucl_object_key(cmesg), ucl_object_tostring(cmesg));
+ } else {
+ unsigned char *rendered_message;
+ rendered_message = ucl_object_emit(cmesg, UCL_EMIT_JSON_COMPACT);
+ fmt::print(out, "Message - {}: {:.60}\n",
+ ucl_object_key(cmesg), rendered_message);
+ free(rendered_message);
+ }
}
}