mirror of
https://github.com/golang/go
synced 2024-11-15 02:20:32 -07:00
cmd/pprof: fix exception when file or path contains colon
Fixes #63924 Change-Id: I4ea17979faaca04eb6b046abffca2dd77397e0cb Reviewed-on: https://go-review.googlesource.com/c/go/+/539595 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Run-TryBot: shuang cui <imcusg@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
959e65c41c
commit
c5698e3155
@ -45,6 +45,16 @@ type fetcher struct {
|
||||
}
|
||||
|
||||
func (f *fetcher) Fetch(src string, duration, timeout time.Duration) (*profile.Profile, string, error) {
|
||||
// Firstly, determine if the src is an existing file on the disk.
|
||||
// If it is a file, let regular pprof open it.
|
||||
// If it is not a file, when the src contains `:`
|
||||
// (e.g. mem_2023-11-02_03:55:24 or abc:123/mem_2023-11-02_03:55:24),
|
||||
// url.Parse will recognize it as a link and ultimately report an error,
|
||||
// similar to `abc:123/mem_2023-11-02_03:55:24:
|
||||
// Get "http://abc:123/mem_2023-11-02_03:55:24": dial tcp: lookup abc: no such host`
|
||||
if _, openErr := os.Stat(src); openErr == nil {
|
||||
return nil, "", nil
|
||||
}
|
||||
sourceURL, timeout := adjustURL(src, duration, timeout)
|
||||
if sourceURL == "" {
|
||||
// Could not recognize URL, let regular pprof attempt to fetch the profile (eg. from a file)
|
||||
|
Loading…
Reference in New Issue
Block a user