diff options
author | Hana (Hyang-Ah) Kim <hyangah@gmail.com> | 2018-05-01 20:01:00 -0400 |
---|---|---|
committer | Hyang-Ah Hana Kim <hyangah@gmail.com> | 2018-05-08 19:25:01 +0000 |
commit | 43b18f42410f427dbfa5b33cae88f6ef574bd547 (patch) | |
tree | 1149e14ecf9fb553ecc8da0ded52ab41c471d08c /src/cmd/trace | |
parent | 9eface7077f31ccf9580df6713252bb0fdd867e4 (diff) | |
download | go-43b18f42410f427dbfa5b33cae88f6ef574bd547.tar.gz go-43b18f42410f427dbfa5b33cae88f6ef574bd547.zip |
cmd/trace: handle invalid goid para in /trace
Change-Id: I1cb7c8b70a5ae16386f6abb577c23d821f7ff7f0
Reviewed-on: https://go-review.googlesource.com/112197
Reviewed-by: Peter Weinberger <pjw@google.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
Diffstat (limited to 'src/cmd/trace')
-rw-r--r-- | src/cmd/trace/trace.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cmd/trace/trace.go b/src/cmd/trace/trace.go index fcba0cbc3f..31ef3b6892 100644 --- a/src/cmd/trace/trace.go +++ b/src/cmd/trace/trace.go @@ -185,11 +185,15 @@ func httpJsonTrace(w http.ResponseWriter, r *http.Request) { // If goid argument is present, we are rendering a trace for this particular goroutine. goid, err := strconv.ParseUint(goids, 10, 64) if err != nil { - log.Printf("failed to parse goid parameter '%v': %v", goids, err) + log.Printf("failed to parse goid parameter %q: %v", goids, err) return } analyzeGoroutines(res.Events) - g := gs[goid] + g, ok := gs[goid] + if !ok { + log.Printf("failed to find goroutine %d", goid) + return + } params.mode = modeGoroutineOriented params.startTime = g.StartTime if g.EndTime != 0 { @@ -249,12 +253,12 @@ func httpJsonTrace(w http.ResponseWriter, r *http.Request) { // If start/end arguments are present, we are rendering a range of the trace. start, err = strconv.ParseInt(startStr, 10, 64) if err != nil { - log.Printf("failed to parse start parameter '%v': %v", startStr, err) + log.Printf("failed to parse start parameter %q: %v", startStr, err) return } end, err = strconv.ParseInt(endStr, 10, 64) if err != nil { - log.Printf("failed to parse end parameter '%v': %v", endStr, err) + log.Printf("failed to parse end parameter %q: %v", endStr, err) return } } |