[PATCH 4/5] batctl: genl_json: escape non-printable characters as valid JSON
Sven Eckelmann <[email protected]> Sun, 05 Jul 2026 17:53:38 +0200
| Newsgroups | org.open-mesh.lists.batman |
|---|---|
| Message-ID | <[email protected]> |
sanitize_string() emits non-printable bytes as \xNN inside JSON string
values. JSON only allows the escape sequences \" \\ \/ \b \f \n \r \t and
\uXXXX. The latter is the correct option for printing arbitrary character
values.
Fixes: ae1a3d3f0bb7 ("batctl: genl_json: Add generic JSON interface")
Signed-off-by: Sven Eckelmann <[email protected]>
---
genl_json.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/genl_json.c b/genl_json.c
index 917b255..bb32cab 100644
--- a/genl_json.c
+++ b/genl_json.c
@@ -40,7 +40,7 @@ static void sanitize_string(const char *str)
putchar('\\');
putchar(*c);
} else if (!isprint(*c)) {
- printf("\\x%02x", *c);
+ printf("\\u%04x", *c);
} else {
putchar(*c);
}
--
2.47.3