aboutsummaryrefslogtreecommitdiff
path: root/src/strings/strings.go
diff options
context:
space:
mode:
authorPhilippe Antoine <contact@catenacyber.fr>2022-03-20 21:34:42 +0000
committerTobias Klauser <tobias.klauser@gmail.com>2022-03-31 05:24:51 +0000
commitcc46cac3bc59c35e22e17471d70e28fd3705d4da (patch)
tree5747d4965353da5507413d7ffbf90e6e2ceace5a /src/strings/strings.go
parent90b29e186576d2682c024b0f0b90c6ad98e824d7 (diff)
downloadgo-cc46cac3bc59c35e22e17471d70e28fd3705d4da.tar.xz
strings: limits allocation size for SplitN
So that `strings.SplitN("", "T", int(144115188075855872))` does not panic. Change-Id: Iea00417e61780bcaf0fee02fa2b18026d89bc545 GitHub-Last-Rev: d1f45b44a8011ddb27c71e1bc9983b62b5d3d771 GitHub-Pull-Request: golang/go#51755 Reviewed-on: https://go-review.googlesource.com/c/go/+/393654 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Tobias Klauser <tobias.klauser@gmail.com>
Diffstat (limited to 'src/strings/strings.go')
-rw-r--r--src/strings/strings.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/strings/strings.go b/src/strings/strings.go
index 5793d9e26f..ed3184b59c 100644
--- a/src/strings/strings.go
+++ b/src/strings/strings.go
@@ -244,6 +244,9 @@ func genSplit(s, sep string, sepSave, n int) []string {
n = Count(s, sep) + 1
}
+ if n > len(s)+1 {
+ n = len(s) + 1
+ }
a := make([]string, n)
n--
i := 0