aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorJohn Olheiser <john.olheiser@gmail.com>2023-06-21 14:57:18 -0500
committerGitHub <noreply@github.com>2023-06-21 19:57:18 +0000
commit8afc1b1cb5ad44ab5dd9597a814b19412702ede3 (patch)
tree474dacac5cfe4ab90bbd51c43973ff54e2caa674 /modules
parent25455bc670910111d8cbb5293f95713416d22a0e (diff)
downloadgitea-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.go6
-rw-r--r--modules/util/path.go5
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