From: Vsevolod Stakhov Date: Fri, 11 Jan 2019 13:03:24 +0000 (+0000) Subject: [Minor] Core: Add support for hex encoded characters in printf X-Git-Tag: 1.9.0~342 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f8d6761a366a3d884c85410ec356d4c4927a8697;p=thirdparty%2Frspamd.git [Minor] Core: Add support for hex encoded characters in printf --- diff --git a/src/libutil/printf.c b/src/libutil/printf.c index 148b49d9ed..476c4de40c 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;