encoding/utf8: enforce scalar and buffer bounds
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
package utf8_test;
|
||||
|
||||
import encoding.utf8;
|
||||
import test;
|
||||
|
||||
// ref/hare/encoding/utf8/encode.ha:7. Byte vectors come from the
|
||||
// Unicode specification (UAX standard examples).
|
||||
@@ -41,3 +42,11 @@ import encoding.utf8;
|
||||
assert(!(out[2] != 0xA6u8));
|
||||
assert(!(out[3] != 0x80u8));
|
||||
};
|
||||
|
||||
// The ww API writes into caller storage, unlike Hare's static-buffer return.
|
||||
// A short slice must fail before the first out-of-bounds store.
|
||||
@test fn encode_short_buffer_aborts() void = {
|
||||
test.expectabort();
|
||||
let out: [1]u8;
|
||||
utf8.encoderune(out[0:1], 0xE9u32: rune);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user