runtime/pprof: don't produce 0 location in count profiles
profileBuilder.locForPC returns 0 to mean "no location" because 0 is an invalid location index. However, the code to build count profiles doesn't check the result of locForPC, so this 0 location index ends up in the profile's location list. This, in turn, causes problems later when we decode the profile because it puts a nil *Location in the sample's location slice, which can later lead to a nil pointer panic. Fix this by making printCountProfile correctly discard the result of locForPC if it returns 0. This makes this call match the other two calls of locForPC. Updates #15156. Change-Id: I4492b3652b513448bc56f4cfece4e37da5e42f94 Reviewed-on: https://go-review.googlesource.com/43630Reviewed-by: Michael Matloob <matloob@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
Showing
Please register or sign in to comment