From: Rob Pike Date: Wed, 20 May 2015 20:26:02 +0000 (-0700) Subject: cmd/doc: fix handling of paths like ./fmt X-Git-Tag: go1.5beta1~514 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=8401b19e7e6bf60d66b2d71cd3fa2215c4649d31;p=gostls13.git cmd/doc: fix handling of paths like ./fmt An error in string slice offsets caused the loop to run forever if the first character in the argument was a period. Fixes #10833. Change-Id: Iefb6aac5cff8864fe93d08e2600cb07d82c6f6df Reviewed-on: https://go-review.googlesource.com/10285 Reviewed-by: Russ Cox --- diff --git a/src/cmd/doc/main.go b/src/cmd/doc/main.go index b3be2a975b..18dafc298c 100644 --- a/src/cmd/doc/main.go +++ b/src/cmd/doc/main.go @@ -132,11 +132,12 @@ func parseArgs() (*build.Package, string, string) { // slash+1: if there's no slash, the value is -1 and start is 0; otherwise // start is the byte after the slash. for start := slash + 1; start < len(arg); start = period + 1 { - period = start + strings.Index(arg[start:], ".") + period = strings.Index(arg[start:], ".") symbol := "" if period < 0 { period = len(arg) } else { + period += start symbol = arg[period+1:] } // Have we identified a package already?