mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:37:44 +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) {
|
||||
switch (ch) {
|
||||
case '\e':
|
||||
append("\\u001B");
|
||||
break;
|
||||
case '\b':
|
||||
append("\\b");
|
||||
break;
|
||||
|
@ -167,6 +164,9 @@ void StringBuilder::append_escaped_for_json(StringView const& string)
|
|||
append("\\\\");
|
||||
break;
|
||||
default:
|
||||
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) {
|
||||
switch (ch) {
|
||||
case '\e':
|
||||
TRY(append("\\u001B"));
|
||||
break;
|
||||
case '\b':
|
||||
TRY(append("\\b"));
|
||||
break;
|
||||
|
@ -120,6 +117,9 @@ KResult KBufferBuilder::append_escaped_for_json(const StringView& string)
|
|||
TRY(append("\\\\"));
|
||||
break;
|
||||
default:
|
||||
if (ch >= 0 && ch <= 0x1f)
|
||||
TRY(append(String::formatted("\\u{:04x}", ch)));
|
||||
else
|
||||
TRY(append(ch));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue