From 2e85f9325a797977eea9dfea0a925775ddd211d9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Feb 2021 12:49:00 +0100 Subject: Merging upstream version 1.29.0. Signed-off-by: Daniel Baumann --- libnetdata/inlined.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'libnetdata/inlined.h') diff --git a/libnetdata/inlined.h b/libnetdata/inlined.h index 6a5994c12..6f236b8f4 100644 --- a/libnetdata/inlined.h +++ b/libnetdata/inlined.h @@ -246,6 +246,26 @@ static inline char *strncpyz(char *dst, const char *src, size_t n) { return p; } +static inline void sanitize_json_string(char *dst, char *src, size_t len) { + while (*src != '\0' && len > 1) { + if (*src == '\\' || *src == '\"' || *src < 0x1F) { + if (*src < 0x1F) { + *dst++ = '_'; + src++; + len--; + } else { + *dst++ = '\\'; + *dst++ = *src++; + len -= 2; + } + } else { + *dst++ = *src++; + len--; + } + } + *dst = '\0'; +} + static inline int read_file(const char *filename, char *buffer, size_t size) { if(unlikely(!size)) return 3; -- cgit v1.2.3