From: Vsevolod Stakhov Date: Thu, 29 Mar 2018 12:57:41 +0000 (+0100) Subject: [Fix] Fix processing of '\v' in libucl X-Git-Tag: 1.7.3~87 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=626c7a170f73eb17efb084be49da3b30fe773a61;p=thirdparty%2Frspamd.git [Fix] Fix processing of '\v' in libucl Issue: #2045 --- diff --git a/contrib/libucl/ucl_emitter_utils.c b/contrib/libucl/ucl_emitter_utils.c index 04940a9028..11a6c4b3d7 100644 --- a/contrib/libucl/ucl_emitter_utils.c +++ b/contrib/libucl/ucl_emitter_utils.c @@ -102,7 +102,9 @@ ucl_elt_string_write_json (const char *str, size_t size, func->ucl_emitter_append_character ('"', 1, func->ud); while (size) { - if (ucl_test_character (*p, UCL_CHARACTER_JSON_UNSAFE|UCL_CHARACTER_DENIED)) { + if (ucl_test_character (*p, (UCL_CHARACTER_JSON_UNSAFE| + UCL_CHARACTER_DENIED| + UCL_CHARACTER_WHITESPACE_UNSAFE))) { if (len > 0) { func->ucl_emitter_append_len (c, len, func->ud); } @@ -122,9 +124,15 @@ ucl_elt_string_write_json (const char *str, size_t size, case '\f': func->ucl_emitter_append_len ("\\f", 2, func->ud); break; + case '\v': + func->ucl_emitter_append_len ("\\v", 2, func->ud); + break; case '\\': func->ucl_emitter_append_len ("\\\\", 2, func->ud); break; + case ' ': + func->ucl_emitter_append_character (' ', 1, func->ud); + break; case '"': func->ucl_emitter_append_len ("\\\"", 2, func->ud); break;