aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Dylan Conway <35280289+dylan-conway@users.noreply.github.com> 2022-12-03 02:59:17 -0800
committerGravatar GitHub <noreply@github.com> 2022-12-03 02:59:17 -0800
commit0a30bf0212ed32a5230ec6fe9ae20fb10e52c4e4 (patch)
treecf65fa204dc7b34c2a0b6c13a17519644f62d4f9
parent04658776e4009c21fdcaa54bc6b17fa220127279 (diff)
downloadbun-0a30bf0212ed32a5230ec6fe9ae20fb10e52c4e4.tar.gz
bun-0a30bf0212ed32a5230ec6fe9ae20fb10e52c4e4.tar.zst
bun-0a30bf0212ed32a5230ec6fe9ae20fb10e52c4e4.zip
make sure to not use incomplete characters (#1575)
-rw-r--r--src/bun.js/webcore/encoding.zig5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig
index a3b350899..c3444c71f 100644
--- a/src/bun.js/webcore/encoding.zig
+++ b/src/bun.js/webcore/encoding.zig
@@ -885,7 +885,10 @@ pub const Encoder = struct {
return ZigString.init(input).toValueGC(global);
},
.ucs2, .utf16le => {
- var output = allocator.alloc(u16, @maximum(len / 2, 1)) catch return ZigString.init("Out of memory").toErrorInstance(global);
+ // Avoid incomplete characters
+ if (len / 2 == 0) return ZigString.Empty.toValue(global);
+
+ var output = allocator.alloc(u16, len / 2) catch return ZigString.init("Out of memory").toErrorInstance(global);
var output_bytes = std.mem.sliceAsBytes(output);
output_bytes[output_bytes.len - 1] = 0;