From 0571ddc368efda40479a3b817fba5e3cb704e47b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hubert=20Wawrzy=C5=84czyk?=
 <107928848+fitithw@users.noreply.github.com>
Date: Mon, 24 Oct 2022 13:57:19 +0200
Subject: [PATCH] Case-insensitive NuGet symbol file GUID (#21409) (#21575)

Backport of #21409

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
---
 integrations/api_packages_nuget_test.go | 2 +-
 routers/api/packages/api.go             | 2 +-
 routers/api/packages/nuget/nuget.go     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/integrations/api_packages_nuget_test.go b/integrations/api_packages_nuget_test.go
index 0b616bcd21..38d678596d 100644
--- a/integrations/api_packages_nuget_test.go
+++ b/integrations/api_packages_nuget_test.go
@@ -286,7 +286,7 @@ AAAjQmxvYgAAAGm7ENm9SGxMtAFVvPUsPJTF6PbtAAAAAFcVogEJAAAAAQAAAA==`)
 			req = AddBasicAuthHeader(req, user.Name)
 			MakeRequest(t, req, http.StatusNotFound)
 
-			req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFFFFF/%s", url, symbolFilename, symbolID, symbolFilename))
+			req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFffff/%s", url, symbolFilename, symbolID, symbolFilename))
 			req = AddBasicAuthHeader(req, user.Name)
 			MakeRequest(t, req, http.StatusOK)
 
diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go
index dd5cf4a4c0..96924698a3 100644
--- a/routers/api/packages/api.go
+++ b/routers/api/packages/api.go
@@ -190,7 +190,7 @@ func Routes() *web.Route {
 					r.Put("/symbolpackage", nuget.UploadSymbolPackage)
 					r.Delete("/{id}/{version}", nuget.DeletePackage)
 				}, reqPackageAccess(perm.AccessModeWrite))
-				r.Get("/symbols/{filename}/{guid:[0-9a-f]{32}}FFFFFFFF/{filename2}", nuget.DownloadSymbolFile)
+				r.Get("/symbols/{filename}/{guid:[0-9a-fA-F]{32}[fF]{8}}/{filename2}", nuget.DownloadSymbolFile)
 			}, reqPackageAccess(perm.AccessModeRead))
 		})
 		r.Group("/npm", func() {
diff --git a/routers/api/packages/nuget/nuget.go b/routers/api/packages/nuget/nuget.go
index 6bdd0ed5e0..d420bfbf05 100644
--- a/routers/api/packages/nuget/nuget.go
+++ b/routers/api/packages/nuget/nuget.go
@@ -351,7 +351,7 @@ func processUploadedFile(ctx *context.Context, expectedType nuget_module.Package
 // DownloadSymbolFile https://github.com/dotnet/symstore/blob/main/docs/specs/Simple_Symbol_Query_Protocol.md#request
 func DownloadSymbolFile(ctx *context.Context) {
 	filename := ctx.Params("filename")
-	guid := ctx.Params("guid")
+	guid := ctx.Params("guid")[:32]
 	filename2 := ctx.Params("filename2")
 
 	if filename != filename2 {