aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libutil/printf.c12
1 files changed, 11 insertions, 1 deletions
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;