From ec081a2ef51fceecceec0250faa3dc7e56f24612 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 3 Dec 2023 23:24:48 +0100 Subject: [PATCH] LibWeb: Don't crash on FormData.append() with emoji in name If you can believe it, we were once again using StringBuilder's append() when we really wanted append_code_point(). --- .../expected/HTML/FormData-append-with-emoji-in-name.txt | 1 + .../input/HTML/FormData-append-with-emoji-in-name.html | 9 +++++++++ Userland/Libraries/LibWeb/Infra/Strings.cpp | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 Tests/LibWeb/Text/expected/HTML/FormData-append-with-emoji-in-name.txt create mode 100644 Tests/LibWeb/Text/input/HTML/FormData-append-with-emoji-in-name.html diff --git a/Tests/LibWeb/Text/expected/HTML/FormData-append-with-emoji-in-name.txt b/Tests/LibWeb/Text/expected/HTML/FormData-append-with-emoji-in-name.txt new file mode 100644 index 0000000000..5db64a560d --- /dev/null +++ b/Tests/LibWeb/Text/expected/HTML/FormData-append-with-emoji-in-name.txt @@ -0,0 +1 @@ + PASS (Didn't crash) diff --git a/Tests/LibWeb/Text/input/HTML/FormData-append-with-emoji-in-name.html b/Tests/LibWeb/Text/input/HTML/FormData-append-with-emoji-in-name.html new file mode 100644 index 0000000000..e0bfb210bc --- /dev/null +++ b/Tests/LibWeb/Text/input/HTML/FormData-append-with-emoji-in-name.html @@ -0,0 +1,9 @@ +
+ + diff --git a/Userland/Libraries/LibWeb/Infra/Strings.cpp b/Userland/Libraries/LibWeb/Infra/Strings.cpp index e71fedeaba..233313c8b0 100644 --- a/Userland/Libraries/LibWeb/Infra/Strings.cpp +++ b/Userland/Libraries/LibWeb/Infra/Strings.cpp @@ -85,7 +85,7 @@ ErrorOr convert_to_scalar_value_string(StringView string) for (u32 code_point : utf8_view) { if (is_unicode_surrogate(code_point)) code_point = 0xFFFD; - TRY(scalar_value_builder.try_append(code_point)); + scalar_value_builder.append_code_point(code_point); } return scalar_value_builder.to_string(); }