From 3efc6bac92b683459b8ddd23353efad1cd91aba7 Mon Sep 17 00:00:00 2001 From: Potuz Date: Wed, 26 Nov 2025 09:54:57 -0300 Subject: [PATCH] Fix linter --- changelog/potuz_fix_linter.md | 3 +++ tools/analyzers/recursivelock/analyzer.go | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 changelog/potuz_fix_linter.md diff --git a/changelog/potuz_fix_linter.md b/changelog/potuz_fix_linter.md new file mode 100644 index 000000000000..7aff422bd8fe --- /dev/null +++ b/changelog/potuz_fix_linter.md @@ -0,0 +1,3 @@ +### Fixed + +- Fix array out of bounds in static analyzer. diff --git a/tools/analyzers/recursivelock/analyzer.go b/tools/analyzers/recursivelock/analyzer.go index 7dca9dc1b2db..ac110f8cbf4d 100644 --- a/tools/analyzers/recursivelock/analyzer.go +++ b/tools/analyzers/recursivelock/analyzer.go @@ -525,6 +525,9 @@ func hasNestedlock(fullRLockSelector *selIdentList, goPos token.Pos, compareMap if node == (*ast.FuncDecl)(nil) { return "" } else if castedNode, ok := node.(*ast.FuncDecl); ok && castedNode.Recv != nil { + if len(castedNode.Recv.List) == 0 || len(castedNode.Recv.List[0].Names) == 0 { + return "" + } recv = castedNode.Recv.List[0].Names[0] rLockSelector.changeRoot(recv, pass.TypesInfo.ObjectOf(recv)) }