зеркало из https://github.com/go-gitea/git.git
Fix for short symlinks (#115)
Signed-off-by: Tris Forster <tris.git@shoddynet.org>
This commit is contained in:
Родитель
288aede62f
Коммит
f1ecc138be
Двоичные данные
tests/repos/repo1_bare/objects/2e/65efe2a145dda7ee51d1741299f848e5bf752e
Normal file
Двоичные данные
tests/repos/repo1_bare/objects/2e/65efe2a145dda7ee51d1741299f848e5bf752e
Normal file
Двоичный файл не отображается.
|
@ -0,0 +1 @@
|
|||
x<01>ŽKN1YçÞ#<23>ç3 !Øp.<2E>ØÎL‹™J›·§á,kñê<15>û}5 PlªB÷5sKÔH|>ŸdíKÌKl kì% û¬S7ƒÜ›ä¢e¡Ó¢™c¥Î‰±çÆH‡§Señ®~ÙuLxŸëocì Óeµ—ý:D¾7µÓ˜—gð‰¢_Bñ=":þËüÝüSà^ETàø™·uûp?ƒ6M^
|
Двоичные данные
tests/repos/repo1_bare/objects/b1/fc9917b618c924cf4aa421dae74e8bf9b556d3
Normal file
Двоичные данные
tests/repos/repo1_bare/objects/b1/fc9917b618c924cf4aa421dae74e8bf9b556d3
Normal file
Двоичный файл не отображается.
Двоичные данные
tests/repos/repo1_bare/objects/f1/a6cb52b2d16773290cefe49ad0684b50a4f930
Normal file
Двоичные данные
tests/repos/repo1_bare/objects/f1/a6cb52b2d16773290cefe49ad0684b50a4f930
Normal file
Двоичный файл не отображается.
|
@ -1 +1 @@
|
|||
6fbd69e9823458e6c4a2fc5c0f6bc022b2f2acd1
|
||||
37991dec2c8e592043f47155ce4808d4580f9123
|
||||
|
|
|
@ -112,7 +112,7 @@ func (te *TreeEntry) FollowLink() (*TreeEntry, error) {
|
|||
t := te.ptree
|
||||
|
||||
// traverse up directories
|
||||
for ; t != nil && lnk[:3] == "../"; lnk = lnk[3:] {
|
||||
for ; t != nil && strings.HasPrefix(lnk, "../"); lnk = lnk[3:] {
|
||||
t = t.ptree
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ func TestFollowLink(t *testing.T) {
|
|||
r, err := OpenRepository("tests/repos/repo1_bare")
|
||||
assert.NoError(t, err)
|
||||
|
||||
commit, err := r.GetCommit("6fbd69e9823458e6c4a2fc5c0f6bc022b2f2acd1")
|
||||
commit, err := r.GetCommit("37991dec2c8e592043f47155ce4808d4580f9123")
|
||||
assert.NoError(t, err)
|
||||
|
||||
// get the symlink
|
||||
|
@ -89,4 +89,10 @@ func TestFollowLink(t *testing.T) {
|
|||
assert.True(t, target.IsLink())
|
||||
_, err = target.FollowLink()
|
||||
assert.Equal(t, err.Error(), "outside_repo: points outside of repo")
|
||||
|
||||
// testing fix for short link bug
|
||||
target, err = commit.Tree.GetTreeEntryByPath("foo/link_short")
|
||||
assert.NoError(t, err)
|
||||
_, err = target.FollowLink()
|
||||
assert.Equal(t, err.Error(), "link_short: broken link")
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче