Quellcode durchsuchen

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().
Andreas Kling vor 1 Jahr
Ursprung
Commit
ec081a2ef5

+ 1 - 0
Tests/LibWeb/Text/expected/HTML/FormData-append-with-emoji-in-name.txt

@@ -0,0 +1 @@
+   PASS (Didn't crash)

+ 9 - 0
Tests/LibWeb/Text/input/HTML/FormData-append-with-emoji-in-name.html

@@ -0,0 +1,9 @@
+<div id=test></div>
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        const formData = new FormData();
+        formData.append("🧐", "");
+        println("PASS (Didn't crash)");
+    });
+</script>

+ 1 - 1
Userland/Libraries/LibWeb/Infra/Strings.cpp

@@ -85,7 +85,7 @@ ErrorOr<String> 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();
 }