From 550d6a559864708fb417d5a08506d5bdd179393e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hubert=20Wawrzy=C5=84czyk?=
 <107928848+fitithw@users.noreply.github.com>
Date: Tue, 11 Oct 2022 13:17:56 +0200
Subject: [PATCH 1/2] Case-insensitive NuGet symbol file GUID

---
 routers/api/packages/api.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go
index 0889006dd7571..fd185c2ba15d5 100644
--- a/routers/api/packages/api.go
+++ b/routers/api/packages/api.go
@@ -196,7 +196,7 @@ func Routes(ctx gocontext.Context) *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() {

From 4a0eeda680a055f81bdb0e78d9125e33e73b2606 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hubert=20Wawrzy=C5=84czyk?= <hubert@fit-it.pl>
Date: Tue, 11 Oct 2022 15:51:50 +0200
Subject: [PATCH 2/2] Properly fixed API

---
 routers/api/packages/api.go                  | 2 +-
 routers/api/packages/nuget/nuget.go          | 2 +-
 tests/integration/api_packages_nuget_test.go | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go
index fd185c2ba15d5..a54add0621ed1 100644
--- a/routers/api/packages/api.go
+++ b/routers/api/packages/api.go
@@ -196,7 +196,7 @@ func Routes(ctx gocontext.Context) *web.Route {
 					r.Put("/symbolpackage", nuget.UploadSymbolPackage)
 					r.Delete("/{id}/{version}", nuget.DeletePackage)
 				}, reqPackageAccess(perm.AccessModeWrite))
-				r.Get("/symbols/{filename}/{guid:[0-9a-fA-F]{32}}[fF]{8}/{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 eadf7486a5d2c..3c61ae28bb18f 100644
--- a/routers/api/packages/nuget/nuget.go
+++ b/routers/api/packages/nuget/nuget.go
@@ -353,7 +353,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 {
diff --git a/tests/integration/api_packages_nuget_test.go b/tests/integration/api_packages_nuget_test.go
index 9d53311d3564a..8d5a5c7c82371 100644
--- a/tests/integration/api_packages_nuget_test.go
+++ b/tests/integration/api_packages_nuget_test.go
@@ -280,7 +280,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)