internal/span: return error when on spans with invalid starts
Fixes golang/go#30155
Change-Id: I7f9dbec6fdfa92654f58627ef44ee4bfe2870fa6
Reviewed-on: https://go-review.googlesource.com/c/tools/+/169440
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/internal/span/token.go b/internal/span/token.go
index 324c258..fb4d16d 100644
--- a/internal/span/token.go
+++ b/internal/span/token.go
@@ -65,6 +65,9 @@
return Span{}, fmt.Errorf("file not found in FileSet")
}
s := Span{v: span{URI: FileURI(f.Name())}}
+ if !r.Start.IsValid() {
+ return Span{}, fmt.Errorf("invalid position for start of range")
+ }
s.v.Start.Offset = f.Offset(r.Start)
if r.End.IsValid() {
s.v.End.Offset = f.Offset(r.End)