mirror of
https://github.com/kasmtech/KasmVNC.git
synced 2026-07-18 00:45:51 +00:00
KASM-6773 Refactor JSON_escape to use switch-case and handle NULL input
This commit is contained in:
parent
4620601891
commit
4e087ba790
1 changed files with 33 additions and 23 deletions
|
|
@ -24,30 +24,40 @@
|
|||
#include "cJSON.h"
|
||||
|
||||
void JSON_escape(const char *in, char *out) {
|
||||
if (!in)
|
||||
return;
|
||||
|
||||
for (; *in; in++) {
|
||||
if (in[0] == '\b') {
|
||||
*out++ = '\\';
|
||||
*out++ = 'b';
|
||||
} else if (in[0] == '\f') {
|
||||
*out++ = '\\';
|
||||
*out++ = 'f';
|
||||
} else if (in[0] == '\n') {
|
||||
*out++ = '\\';
|
||||
*out++ = 'n';
|
||||
} else if (in[0] == '\r') {
|
||||
*out++ = '\\';
|
||||
*out++ = 'r';
|
||||
} else if (in[0] == '\t') {
|
||||
*out++ = '\\';
|
||||
*out++ = 't';
|
||||
} else if (in[0] == '"') {
|
||||
*out++ = '\\';
|
||||
*out++ = '"';
|
||||
} else if (in[0] == '\\') {
|
||||
*out++ = '\\';
|
||||
*out++ = '\\';
|
||||
} else {
|
||||
*out++ = *in;
|
||||
switch (*in) {
|
||||
case '\b':
|
||||
*out++ = '\\';
|
||||
*out++ = 'b';
|
||||
break;
|
||||
case '\f':
|
||||
*out++ = '\\';
|
||||
*out++ = 'f';
|
||||
case '\n':
|
||||
*out++ = '\\';
|
||||
*out++ = 'n';
|
||||
break;
|
||||
case '\r':
|
||||
*out++ = '\\';
|
||||
*out++ = 'r';
|
||||
break;
|
||||
case '\t':
|
||||
*out++ = '\\';
|
||||
*out++ = 't';
|
||||
break;
|
||||
case '"':
|
||||
*out++ = '\\';
|
||||
*out++ = '"';
|
||||
break;
|
||||
case '\\':
|
||||
*out++ = '\\';
|
||||
*out++ = '\\';
|
||||
break;
|
||||
default:
|
||||
*out++ = *in;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue