diff options
author | John Olheiser <john.olheiser@gmail.com> | 2023-06-21 14:57:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-21 19:57:18 +0000 |
commit | 8afc1b1cb5ad44ab5dd9597a814b19412702ede3 (patch) | |
tree | 474dacac5cfe4ab90bbd51c43973ff54e2caa674 /modules | |
parent | 25455bc670910111d8cbb5293f95713416d22a0e (diff) | |
download | gitea-8afc1b1cb5ad44ab5dd9597a814b19412702ede3.tar.gz gitea-8afc1b1cb5ad44ab5dd9597a814b19412702ede3.zip |
Move some regexp out of functions (#25430)
/cc @KN4CK3R
https://github.com/go-gitea/gitea/pull/25294#discussion_r1237425343
I also searched the codebase and found a few more.
---------
Signed-off-by: jolheiser <john.olheiser@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r-- | modules/repository/generate.go | 6 | ||||
-rw-r--r-- | modules/util/path.go | 5 |
2 files changed, 6 insertions, 5 deletions
diff --git a/modules/repository/generate.go b/modules/repository/generate.go index 102c5af1c9..cb25daa10b 100644 --- a/modules/repository/generate.go +++ b/modules/repository/generate.go @@ -372,12 +372,12 @@ func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templ return generateRepo, nil } +var fileNameSanitizeRegexp = regexp.MustCompile(`(?i)\.\.|[<>:\"/\\|?*\x{0000}-\x{001F}]|^(con|prn|aux|nul|com\d|lpt\d)$`) + // Sanitize user input to valid OS filenames // // Based on https://github.com/sindresorhus/filename-reserved-regex // Adds ".." to prevent directory traversal func fileNameSanitize(s string) string { - re := regexp.MustCompile(`(?i)\.\.|[<>:\"/\\|?*\x{0000}-\x{001F}]|^(con|prn|aux|nul|com\d|lpt\d)$`) - - return strings.TrimSpace(re.ReplaceAllString(s, "_")) + return strings.TrimSpace(fileNameSanitizeRegexp.ReplaceAllString(s, "_")) } diff --git a/modules/util/path.go b/modules/util/path.go index 1a68bc7488..58258560dd 100644 --- a/modules/util/path.go +++ b/modules/util/path.go @@ -222,6 +222,8 @@ func isOSWindows() bool { return runtime.GOOS == "windows" } +var driveLetterRegexp = regexp.MustCompile("/[A-Za-z]:/") + // FileURLToPath extracts the path information from a file://... url. func FileURLToPath(u *url.URL) (string, error) { if u.Scheme != "file" { @@ -235,8 +237,7 @@ func FileURLToPath(u *url.URL) (string, error) { } // If it looks like there's a Windows drive letter at the beginning, strip off the leading slash. - re := regexp.MustCompile("/[A-Za-z]:/") - if re.MatchString(path) { + if driveLetterRegexp.MatchString(path) { return path[1:], nil } return path, nil |