From: cuiweixie Date: Wed, 28 Sep 2022 13:13:41 +0000 (+0800) Subject: archive/zip: use strings.TrimPrefix X-Git-Tag: go1.20rc1~825 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=45c2421dc643f9e0274cb8630459d65942838f2d;p=gostls13.git archive/zip: use strings.TrimPrefix Change-Id: I2854b5e7b48c4c189df84cb7281b7b7de780eebd Reviewed-on: https://go-review.googlesource.com/c/go/+/435938 TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Reviewed-by: Dmitri Shuralyov --- diff --git a/src/archive/zip/reader.go b/src/archive/zip/reader.go index d7fcff2afd..db118ce854 100644 --- a/src/archive/zip/reader.go +++ b/src/archive/zip/reader.go @@ -715,12 +715,13 @@ func (f *fileListEntry) Info() (fs.FileInfo, error) { return f, nil } func toValidName(name string) string { name = strings.ReplaceAll(name, `\`, `/`) p := path.Clean(name) - if strings.HasPrefix(p, "/") { - p = p[len("/"):] - } + + p = strings.TrimPrefix(p, "/") + for strings.HasPrefix(p, "../") { p = p[len("../"):] } + return p }