From 94f25ec94920beee5fb2dd4c0cbf4cbff28f14e6 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Mon, 25 Apr 2022 11:22:10 -0400 Subject: [PATCH] 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 --- src/debug/pe/symbol.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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] -- 2.50.0