From 45c2421dc643f9e0274cb8630459d65942838f2d Mon Sep 17 00:00:00 2001 From: cuiweixie Date: Wed, 28 Sep 2022 21:13:41 +0800 Subject: [PATCH] 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 --- src/archive/zip/reader.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 } -- 2.50.0