Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58c40eceba |
@@ -295,7 +295,7 @@ func checkNoSymlinks(p string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to check %s for a symlink: %w", current, err)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if info.Mode()&os.ModeSymlink != 0 {
|
if info.Mode()&os.ModeSymlink != 0 {
|
||||||
|
|||||||
@@ -444,8 +444,8 @@ func TestFetchProgress(t *testing.T) {
|
|||||||
// TestFetchRefusesSymlinks runs fetch into a destination directory that
|
// TestFetchRefusesSymlinks runs fetch into a destination directory that
|
||||||
// holds a symlink pointing outside it, in each of the three places fetch
|
// holds a symlink pointing outside it, in each of the three places fetch
|
||||||
// writes: a parent directory, the temp file, and the file itself, which
|
// writes: a parent directory, the temp file, and the file itself, which
|
||||||
// the temp file is renamed onto; and once as a directory inside a plain
|
// the temp file is renamed onto. The fetch must fail and nothing outside
|
||||||
// directory. The fetch must fail and nothing outside may change.
|
// may change.
|
||||||
//
|
//
|
||||||
//nolint:paralleltest // changes the process-global working directory
|
//nolint:paralleltest // changes the process-global working directory
|
||||||
func TestFetchRefusesSymlinks(t *testing.T) {
|
func TestFetchRefusesSymlinks(t *testing.T) {
|
||||||
@@ -456,7 +456,6 @@ func TestFetchRefusesSymlinks(t *testing.T) {
|
|||||||
target string // what link points to, relative to the outside directory
|
target string // what link points to, relative to the outside directory
|
||||||
}{
|
}{
|
||||||
{"parent directory", "sub/deeper/file.txt", "sub", "."},
|
{"parent directory", "sub/deeper/file.txt", "sub", "."},
|
||||||
{"directory inside a plain directory", "docs/data/passwd", "docs/data", "."},
|
|
||||||
{"temp file", testFileTxt, ".file.txt.tmp", "new.txt"},
|
{"temp file", testFileTxt, ".file.txt.tmp", "new.txt"},
|
||||||
{"file", testFileTxt, testFileTxt, "new.txt"},
|
{"file", testFileTxt, testFileTxt, "new.txt"},
|
||||||
}
|
}
|
||||||
@@ -475,7 +474,6 @@ func TestFetchRefusesSymlinks(t *testing.T) {
|
|||||||
outside := t.TempDir()
|
outside := t.TempDir()
|
||||||
|
|
||||||
chdirTemp(t)
|
chdirTemp(t)
|
||||||
require.NoError(t, os.MkdirAll(filepath.Dir(tt.link), 0o755))
|
|
||||||
require.NoError(t, os.Symlink(filepath.Join(outside, tt.target), tt.link))
|
require.NoError(t, os.Symlink(filepath.Join(outside, tt.target), tt.link))
|
||||||
|
|
||||||
opts := testOpts([]string{testApp, "fetch", "-q", server.URL}, afero.NewOsFs())
|
opts := testOpts([]string{testApp, "fetch", "-q", server.URL}, afero.NewOsFs())
|
||||||
|
|||||||
Reference in New Issue
Block a user