mirror of
https://github.com/golang/go.git
synced 2026-02-06 09:50:02 +00:00
encoding/pem: don't reslice in failure modes
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>
This commit is contained in:
parent
34fec512ce
commit
9f6590f333
1 changed files with 3 additions and 0 deletions
|
|
@ -95,6 +95,9 @@ func Decode(data []byte) (p *Block, rest []byte) {
|
|||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue