1
0
mirror of https://github.com/golang/go synced 2024-10-01 07:28:35 -06:00
go/internal/lsp
Sander van Harmelen b346f7fd45 x/tools/cmd/gopls: prevent nil pointer dereferences
The `files` slice is used twice. First it's used to get all results from `ph.Parse`, and then it's reused to filter all `nil` values (which may have been returned by the `ph.Parse` method).

After the loop to "filter" out all the `nil` values, we also need to strip the remaining values.

I also changed the ordering so that we first check the errors and
only then perform this loop. That way the code will return earlier
when the context was canceled.

Partially fixes #33531 by prevention the panic reported in that issue.

Change-Id: I09478e765adcd0384ec4745921eb5c5aea405ef2
Reviewed-on: https://go-review.googlesource.com/c/tools/+/189397
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-08-07 22:35:07 +00:00
..
browser internal/lsp: add version and bug commands 2019-05-11 04:16:02 +00:00
cache x/tools/cmd/gopls: prevent nil pointer dereferences 2019-08-07 22:35:07 +00:00
cmd internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
debug internal/lsp: new tracing system 2019-07-18 23:00:54 +00:00
diff internal/lsp: enable incrementalSync by default 2019-06-26 20:40:24 +00:00
fuzzy internal/lsp/fuzzy: add fuzzy matching library 2019-07-03 21:24:19 +00:00
protocol internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
snippet internal/lsp: introduce snippet builder object 2019-04-25 18:37:29 +00:00
source internal/lsp: minor refactoring for source.Identifier 2019-08-07 20:13:05 +00:00
telemetry internal/lsp/telemetry/ocagent: add convertAnnotation tests 2019-08-05 19:50:47 +00:00
testdata internal/lsp: show "do not edit" message when user opens generated file 2019-08-07 16:44:42 +00:00
tests internal/lsp: show "do not edit" message when user opens generated file 2019-08-07 16:44:42 +00:00
code_action.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
completion.go internal/lsp: convert logging calls 2019-07-18 19:03:12 +00:00
definition.go internal/lsp: minor refactoring for source.Identifier 2019-08-07 20:13:05 +00:00
diagnostics.go internal/lsp: convert logging calls 2019-07-18 19:03:12 +00:00
format.go internal/lsp: cache the *ast.File and *token.File on the package 2019-07-16 19:44:59 +00:00
general.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
highlight.go internal/lsp: convert logging calls 2019-07-18 19:03:12 +00:00
hover.go internal/lsp: minor refactoring for source.Identifier 2019-08-07 20:13:05 +00:00
link.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
lsp_test.go internal/lsp: show "do not edit" message when user opens generated file 2019-08-07 16:44:42 +00:00
references.go internal/lsp: minor refactoring for source.Identifier 2019-08-07 20:13:05 +00:00
rename.go internal/lsp: minor refactoring for source.Identifier 2019-08-07 20:13:05 +00:00
reset_golden.sh internal/lsp: fix definition tests to use golden files 2019-05-10 21:06:55 +00:00
server.go internal/lsp: do not show errors for code actions on go.mod files 2019-08-06 19:11:59 +00:00
signature_help.go internal/lsp: convert logging calls 2019-07-18 19:03:12 +00:00
symbols.go internal/lsp: reduce trace package to minimal StartSpan for now 2019-07-11 17:25:55 +00:00
text_synchronization.go internal/lsp: show "do not edit" message when user opens generated file 2019-08-07 16:44:42 +00:00
util.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00
workspace.go internal/lsp: use x/xerrors to create new errors 2019-08-06 19:46:56 +00:00