From f8d6761a366a3d884c85410ec356d4c4927a8697 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 11 Jan 2019 13:03:24 +0000 Subject: [PATCH] [Minor] Core: Add support for hex encoded characters in printf --- src/libutil/printf.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libutil/printf.c b/src/libutil/printf.c index 148b49d9e..476c4de40 100644 --- a/src/libutil/printf.c +++ b/src/libutil/printf.c @@ -979,7 +979,17 @@ rspamd_vprintf_common (rspamd_printf_append_func func, case 'c': c = va_arg (args, gint); c &= 0xff; - RSPAMD_PRINTF_APPEND (&c, 1); + if (G_UNLIKELY (hex)) { + gchar hexbuf[2]; + hexbuf[0] = hex == 2 ? _HEX[(c >> 4) & 0xf] : + _hex[(c >> 4) & 0xf]; + hexbuf[1] = hex == 2 ? _HEX[c & 0xf] : _hex[c & 0xf]; + + RSPAMD_PRINTF_APPEND (hexbuf, 2); + } + else { + RSPAMD_PRINTF_APPEND (&c, 1); + } continue; -- 2.39.5