Skip to content

Commit 8dad014

Browse files
committed
maintner: fix infinite loop bug in GitCommit.HasAncestor
Fix a stupid bug fortunately found before production. Add the test that caught it. Updates golang/go#20222 Change-Id: Ie988d80dec18e5d0fede7a31e3b6cce62b050f5f Reviewed-on: https://go-review.googlesource.com/43555 Reviewed-by: Josh Bleecher Snyder <[email protected]>
1 parent b77708e commit 8dad014

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

maintner/git.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func (gc *GitCommit) HasAncestor(ancestor *GitCommit) bool {
8080
}
8181

8282
func (gc *GitCommit) hasAncestor(ancestor *GitCommit, checked map[*GitCommit]bool) bool {
83-
if v, ok := checked[ancestor]; ok {
83+
if v, ok := checked[gc]; ok {
8484
return v
8585
}
8686
checked[gc] = false

maintner/godata/godata_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ func TestGitAncestor(t *testing.T) {
5757
{"3b5637ff2bd5c03479780995e7a35c48222157c1", "0bb0b61d6a85b2a1a33dcbc418089656f2754d32", true},
5858
{"0bb0b61d6a85b2a1a33dcbc418089656f2754d32", "3b5637ff2bd5c03479780995e7a35c48222157c1", false},
5959

60+
{"8f06e217eac10bae4993ca371ade35fecd26270e", "22f1b56dab29d397d2bdbdd603d85e60fb678089", true},
61+
{"22f1b56dab29d397d2bdbdd603d85e60fb678089", "8f06e217eac10bae4993ca371ade35fecd26270e", false},
62+
6063
// Same on both sides:
6164
{"0bb0b61d6a85b2a1a33dcbc418089656f2754d32", "0bb0b61d6a85b2a1a33dcbc418089656f2754d32", false},
6265
{"3b5637ff2bd5c03479780995e7a35c48222157c1", "3b5637ff2bd5c03479780995e7a35c48222157c1", false},

0 commit comments

Comments
 (0)