From: Robert Griesemer Date: Wed, 22 Feb 2012 19:25:21 +0000 (-0800) Subject: godoc: proper index range checking when extracting example code X-Git-Tag: weekly.2012-02-22~18 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=775f0058acb166ef10e1e34f492bef482f950aa8;p=gostls13.git godoc: proper index range checking when extracting example code Fixes #3092. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5683075 --- diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go index 6dfaf149f9..7249658956 100644 --- a/src/cmd/godoc/godoc.go +++ b/src/cmd/godoc/godoc.go @@ -524,11 +524,11 @@ func example_htmlFunc(funcName string, examples []*doc.Example, fset *token.File out := eg.Output // additional formatting if this is a function body - if len(code) > 0 && code[0] == '{' { + if n := len(code); n >= 2 && code[0] == '{' && code[n-1] == '}' { + // remove surrounding braces + code = code[1 : n-1] // unindent code = strings.Replace(code, "\n ", "\n", -1) - // remove surrounding braces - code = code[2 : len(code)-2] // remove output comment if loc := exampleOutputRx.FindStringIndex(code); loc != nil { code = strings.TrimSpace(code[:loc[0]])