[sr-dev] git:master:a08b7640: core: dprint - escaped control chars need 6 bytes
Daniel-Constantin Mierla
miconda at gmail.com
Mon May 11 20:35:48 CEST 2020
Module: kamailio
Branch: master
Commit: a08b7640e27524863acd7dc732dffc744f801b5d
URL: https://github.com/kamailio/kamailio/commit/a08b7640e27524863acd7dc732dffc744f801b5d
Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2020-05-11T20:34:27+02:00
core: dprint - escaped control chars need 6 bytes
- they are encoded as \uXXXX
---
Modified: src/core/dprint.c
---
Diff: https://github.com/kamailio/kamailio/commit/a08b7640e27524863acd7dc732dffc744f801b5d.diff
Patch: https://github.com/kamailio/kamailio/commit/a08b7640e27524863acd7dc732dffc744f801b5d.patch
---
diff --git a/src/core/dprint.c b/src/core/dprint.c
index f75b2f1684..ba5cad0ee8 100644
--- a/src/core/dprint.c
+++ b/src/core/dprint.c
@@ -521,7 +521,7 @@ static void ksr_slog_json_str_escape(str *s_in, str *s_out, int *emode)
if (strchr("\"\\\b\f\n\r\t", s_in->s[i])) {
len += 2;
} else if (s_in->s[i] < 32) {
- len += 5;
+ len += 6;
} else {
len++;
}
@@ -542,9 +542,9 @@ static void ksr_slog_json_str_escape(str *s_in, str *s_out, int *emode)
p2 = s_out->s;
p1 = s_in->s;
while (p1 < s_in->s + s_in->len) {
- if ((unsigned char) *p1 > 31 && *p1 != '\"' && *p1 != '\\')
+ if ((unsigned char) *p1 > 31 && *p1 != '\"' && *p1 != '\\') {
*p2++ = *p1++;
- else {
+ } else {
*p2++ = '\\';
switch (token = *p1++) {
case '\\':
@@ -569,9 +569,10 @@ static void ksr_slog_json_str_escape(str *s_in, str *s_out, int *emode)
*p2++ = 't';
break;
default:
+ /* escape and print */
snprintf(p2, 6, "u%04x", token);
p2 += 5;
- break; /* escape and print */
+ break;
}
}
}
More information about the sr-dev
mailing list