We re-slice the data being processed at the stat of each loop. If the
var that we use to calculate where to re-slice is < 0 or > the length
of the remaining data, return instead of attempting to re-slice.
Change-Id: I1d6c2b6c596feedeea8feeaace370ea73ba02c4c
Reviewed-on: https://go-review.googlesource.com/c/go/+/715260
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Roland Shoemaker <roland@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
for {
// If we've already tried parsing a block, skip past the END we already
// saw.
+ if endTrailerIndex < 0 || endTrailerIndex > len(rest) {
+ return nil, data
+ }
rest = rest[endTrailerIndex:]
// Find the first END line, and then find the last BEGIN line before