aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-06-29 21:12:43 +0100
committerGitHub <noreply@github.com>2021-06-29 16:12:43 -0400
commitadd74fb368b4b6a5deee91e052240c0956d7dc5b (patch)
treedf9b63a3f9ba75175979022687ffd45a67c8a8d6 /modules/git
parent653704c102f7eb389adcbbcfd0e5a9e9aaa5b227 (diff)
downloadgitea-add74fb368b4b6a5deee91e052240c0956d7dc5b.tar.gz
gitea-add74fb368b4b6a5deee91e052240c0956d7dc5b.zip
Fix panic in recursive cache (#16298)
There is a bug with last commit cache recursive cache where the last commit information that refers to the current tree itself will cause a panic due to its path ("") not being included in the expected tree entry paths. This PR fixes this by skipping the missing entry. Fix #16290 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'modules/git')
-rw-r--r--modules/git/last_commit_cache_nogogit.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/git/last_commit_cache_nogogit.go b/modules/git/last_commit_cache_nogogit.go
index ff9f9ff1cf..faf6e23fa8 100644
--- a/modules/git/last_commit_cache_nogogit.go
+++ b/modules/git/last_commit_cache_nogogit.go
@@ -94,7 +94,8 @@ func (c *LastCommitCache) recursiveCache(ctx context.Context, commit *Commit, tr
if err := c.Put(commit.ID.String(), path.Join(treePath, entry), entryCommit.ID.String()); err != nil {
return err
}
- if entryMap[entry].IsDir() {
+ // entryMap won't contain "" therefore skip this.
+ if treeEntry := entryMap[entry]; treeEntry != nil && treeEntry.IsDir() {
subTree, err := tree.SubTree(entry)
if err != nil {
return err