mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	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>
This commit is contained in:
		| @@ -372,12 +372,12 @@ func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templ | |||||||
| 	return generateRepo, nil | 	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 | // Sanitize user input to valid OS filenames | ||||||
| // | // | ||||||
| //		Based on https://github.com/sindresorhus/filename-reserved-regex | //		Based on https://github.com/sindresorhus/filename-reserved-regex | ||||||
| //	 Adds ".." to prevent directory traversal | //	 Adds ".." to prevent directory traversal | ||||||
| func fileNameSanitize(s string) string { | func fileNameSanitize(s string) string { | ||||||
| 	re := regexp.MustCompile(`(?i)\.\.|[<>:\"/\\|?*\x{0000}-\x{001F}]|^(con|prn|aux|nul|com\d|lpt\d)$`) | 	return strings.TrimSpace(fileNameSanitizeRegexp.ReplaceAllString(s, "_")) | ||||||
|  |  | ||||||
| 	return strings.TrimSpace(re.ReplaceAllString(s, "_")) |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -222,6 +222,8 @@ func isOSWindows() bool { | |||||||
| 	return runtime.GOOS == "windows" | 	return runtime.GOOS == "windows" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | var driveLetterRegexp = regexp.MustCompile("/[A-Za-z]:/") | ||||||
|  |  | ||||||
| // FileURLToPath extracts the path information from a file://... url. | // FileURLToPath extracts the path information from a file://... url. | ||||||
| func FileURLToPath(u *url.URL) (string, error) { | func FileURLToPath(u *url.URL) (string, error) { | ||||||
| 	if u.Scheme != "file" { | 	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. | 	// 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 driveLetterRegexp.MatchString(path) { | ||||||
| 	if re.MatchString(path) { |  | ||||||
| 		return path[1:], nil | 		return path[1:], nil | ||||||
| 	} | 	} | ||||||
| 	return path, nil | 	return path, nil | ||||||
|   | |||||||
| @@ -77,6 +77,8 @@ func CheckAcceptMediaType(ctx *context.Context) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | var rangeHeaderRegexp = regexp.MustCompile(`bytes=(\d+)\-(\d*).*`) | ||||||
|  |  | ||||||
| // DownloadHandler gets the content from the content store | // DownloadHandler gets the content from the content store | ||||||
| func DownloadHandler(ctx *context.Context) { | func DownloadHandler(ctx *context.Context) { | ||||||
| 	rc := getRequestContext(ctx) | 	rc := getRequestContext(ctx) | ||||||
| @@ -92,8 +94,7 @@ func DownloadHandler(ctx *context.Context) { | |||||||
| 	toByte = meta.Size - 1 | 	toByte = meta.Size - 1 | ||||||
| 	statusCode := http.StatusOK | 	statusCode := http.StatusOK | ||||||
| 	if rangeHdr := ctx.Req.Header.Get("Range"); rangeHdr != "" { | 	if rangeHdr := ctx.Req.Header.Get("Range"); rangeHdr != "" { | ||||||
| 		regex := regexp.MustCompile(`bytes=(\d+)\-(\d*).*`) | 		match := rangeHeaderRegexp.FindStringSubmatch(rangeHdr) | ||||||
| 		match := regex.FindStringSubmatch(rangeHdr) |  | ||||||
| 		if len(match) > 1 { | 		if len(match) > 1 { | ||||||
| 			statusCode = http.StatusPartialContent | 			statusCode = http.StatusPartialContent | ||||||
| 			fromByte, _ = strconv.ParseInt(match[1], 10, 32) | 			fromByte, _ = strconv.ParseInt(match[1], 10, 32) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user