From 79a85ae7cbec23d9590566a3e770d8e216ea3af3 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sat, 05 Apr 2025 13:47:00 +0800 Subject: [PATCH] Be a bit more careful handling size integer overflows and such --- git_misc.go | 7 +++---- http_handle_repo_raw.go | 2 +- http_handle_repo_tree.go | 2 +- diff --git a/git_misc.go b/git_misc.go index 4714e1ae7113a77d2e92fb17db4c9b1942717ea7..8e72d0cebc476265ce54fc1e409655610a3d6bfd 100644 --- a/git_misc.go +++ b/git_misc.go @@ -70,7 +70,7 @@ // This struct is a wrapper that is friendlier for use in templating. type displayTreeEntry struct { Name string Mode string - Size int64 + Size uint64 IsFile bool IsSubtree bool } @@ -91,9 +91,8 @@ } displayEntry.IsFile = entry.Mode.IsFile() - if displayEntry.Size, err = tree.Size(entry.Name); err != nil { - displayEntry.Size = 0 - } + size, _ := tree.Size(entry.Name) + displayEntry.Size = uint64(size) //#nosec G115 displayEntry.Name = strings.TrimPrefix(entry.Name, "/") diff --git a/http_handle_repo_raw.go b/http_handle_repo_raw.go index 835dd1bf5fdfbb75bdbdeb253659cd10b99f4eb9..8a9740e8bbfacb12f46fce05cc8a2842fbe46e1f 100644 --- a/http_handle_repo_raw.go +++ b/http_handle_repo_raw.go @@ -100,7 +100,7 @@ } files = append(files, displayTreeEntry{ Name: string(name), Mode: fmt.Sprintf("%06o", mode), - Size: int64(size), + Size: size, IsFile: typeCode == 2, IsSubtree: typeCode == 1, }) diff --git a/http_handle_repo_tree.go b/http_handle_repo_tree.go index bee5b0ad6ebf5011ad763052d25827508a0c9d33..0228df3a4bb3f7d0a942d0edec515423357d9a29 100644 --- a/http_handle_repo_tree.go +++ b/http_handle_repo_tree.go @@ -99,7 +99,7 @@ files = append(files, displayTreeEntry{ Name: string(name), Mode: fmt.Sprintf("%06o", mode), - Size: int64(size), + Size: size, IsFile: typeCode == 2, IsSubtree: typeCode == 1, }) -- 2.48.1