mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
bytes: fix panic in Map
utf8.RuneLen returns -1 for an invalid rune. In that case we need to extend the internal buffer at least by 3 for \uFFFD. Fixes #7577. LGTM=iant R=golang-codereviews, iant CC=golang-codereviews https://golang.org/cl/77420044
This commit is contained in:
parent
f34251a91c
commit
1a21dbc572
2 changed files with 15 additions and 1 deletions
|
|
@ -785,6 +785,16 @@ func TestMap(t *testing.T) {
|
|||
if string(m) != expect {
|
||||
t.Errorf("drop: expected %q got %q", expect, m)
|
||||
}
|
||||
|
||||
// 6. Invalid rune
|
||||
invalidRune := func(r rune) rune {
|
||||
return utf8.MaxRune + 1
|
||||
}
|
||||
m = Map(invalidRune, []byte("x"))
|
||||
expect = "\uFFFD"
|
||||
if string(m) != expect {
|
||||
t.Errorf("invalidRune: expected %q got %q", expect, m)
|
||||
}
|
||||
}
|
||||
|
||||
func TestToUpper(t *testing.T) { runStringTests(t, ToUpper, "ToUpper", upperTests) }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue