mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 01:47:34 +00:00
AK+Kernel: Avoid unescaped control chars in append_escaped_for_json()
Otherwise it could produce invalid JSON.
This commit is contained in:
parent
e1e91f6c85
commit
27e3589f61
2 changed files with 8 additions and 8 deletions
|
@ -148,9 +148,6 @@ void StringBuilder::append_escaped_for_json(StringView const& string)
|
||||||
{
|
{
|
||||||
for (auto ch : string) {
|
for (auto ch : string) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case '\e':
|
|
||||||
append("\\u001B");
|
|
||||||
break;
|
|
||||||
case '\b':
|
case '\b':
|
||||||
append("\\b");
|
append("\\b");
|
||||||
break;
|
break;
|
||||||
|
@ -167,7 +164,10 @@ void StringBuilder::append_escaped_for_json(StringView const& string)
|
||||||
append("\\\\");
|
append("\\\\");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
append(ch);
|
if (ch >= 0 && ch <= 0x1f)
|
||||||
|
append(String::formatted("\\u{:04x}", ch));
|
||||||
|
else
|
||||||
|
append(ch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,9 +101,6 @@ KResult KBufferBuilder::append_escaped_for_json(const StringView& string)
|
||||||
{
|
{
|
||||||
for (auto ch : string) {
|
for (auto ch : string) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case '\e':
|
|
||||||
TRY(append("\\u001B"));
|
|
||||||
break;
|
|
||||||
case '\b':
|
case '\b':
|
||||||
TRY(append("\\b"));
|
TRY(append("\\b"));
|
||||||
break;
|
break;
|
||||||
|
@ -120,7 +117,10 @@ KResult KBufferBuilder::append_escaped_for_json(const StringView& string)
|
||||||
TRY(append("\\\\"));
|
TRY(append("\\\\"));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TRY(append(ch));
|
if (ch >= 0 && ch <= 0x1f)
|
||||||
|
TRY(append(String::formatted("\\u{:04x}", ch)));
|
||||||
|
else
|
||||||
|
TRY(append(ch));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return KSuccess;
|
return KSuccess;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue