From: Than McIntosh Date: Mon, 25 Apr 2022 15:22:10 +0000 (-0400) Subject: debug/pe: fix off by one error in valid symbol index test X-Git-Tag: go1.19beta1~556 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=94f25ec94920beee5fb2dd4c0cbf4cbff28f14e6;p=gostls13.git debug/pe: fix off by one error in valid symbol index test Fix an off-by-one error in COFFSymbolReadSectionDefAux, specifically the code that tests whether a symbol index is valid. Fixes #52525. Change-Id: I1b6e5dacfd99249c694bef5ae606e90fdb2ef521 Reviewed-on: https://go-review.googlesource.com/c/go/+/402156 Run-TryBot: Than McIntosh Reviewed-by: Cherry Mui TryBot-Result: Gopher Robot --- diff --git a/src/debug/pe/symbol.go b/src/debug/pe/symbol.go index 0dfd5d90b8..323fa8c3df 100644 --- a/src/debug/pe/symbol.go +++ b/src/debug/pe/symbol.go @@ -136,10 +136,9 @@ const ( // auxiliary symbols: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-symbol-records // COMDAT sections: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only // auxiliary info for section definitions: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-5-section-definitions -// func (f *File) COFFSymbolReadSectionDefAux(idx int) (*COFFSymbolAuxFormat5, error) { var rv *COFFSymbolAuxFormat5 - if idx < 0 || idx > len(f.COFFSymbols) { + if idx < 0 || idx >= len(f.COFFSymbols) { return rv, fmt.Errorf("invalid symbol index") } pesym := &f.COFFSymbols[idx]