aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-04-05 13:47:00 +0800
committerRunxi Yu <me@runxiyu.org>2025-04-05 13:47:00 +0800
commit79a85ae7cbec23d9590566a3e770d8e216ea3af3 (patch)
treef4ef973286c999087fc4f0daa5e557f8f40d3cf6
parentHTTP: Use range in for loops over integers (diff)
downloadforge-0.1.19.tar.gz
forge-0.1.19.tar.zst
forge-0.1.19.zip
Be a bit more careful handling size integer overflows and suchv0.1.19
-rw-r--r--git_misc.go7
-rw-r--r--http_handle_repo_raw.go2
-rw-r--r--http_handle_repo_tree.go2
3 files changed, 5 insertions, 6 deletions
diff --git a/git_misc.go b/git_misc.go
index 4714e1a..8e72d0c 100644
--- a/git_misc.go
+++ b/git_misc.go
@@ -70,7 +70,7 @@ WHERE g.depth = cardinality($1::text[])
type displayTreeEntry struct {
Name string
Mode string
- Size int64
+ Size uint64
IsFile bool
IsSubtree bool
}
@@ -91,9 +91,8 @@ func makeDisplayTree(tree *object.Tree) (displayTree []displayTreeEntry) {
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 835dd1b..8a9740e 100644
--- a/http_handle_repo_raw.go
+++ b/http_handle_repo_raw.go
@@ -100,7 +100,7 @@ func httpHandleRepoRaw(writer http.ResponseWriter, request *http.Request, params
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 bee5b0a..0228df3 100644
--- a/http_handle_repo_tree.go
+++ b/http_handle_repo_tree.go
@@ -99,7 +99,7 @@ func httpHandleRepoTree(writer http.ResponseWriter, request *http.Request, param
files = append(files, displayTreeEntry{
Name: string(name),
Mode: fmt.Sprintf("%06o", mode),
- Size: int64(size),
+ Size: size,
IsFile: typeCode == 2,
IsSubtree: typeCode == 1,
})