diff --git a/internal/super/init_test.go b/internal/super/init_test.go index 2f72c7ed8..f40f0aae0 100644 --- a/internal/super/init_test.go +++ b/internal/super/init_test.go @@ -39,3 +39,8 @@ func Test_ResolveTargetDirectory_CurrentDirCases(t *testing.T) { assert.NoError(t, err) assert.Equal(t, filepath.Clean(wd), filepath.Clean(dot)) } + +func Test_GetTargetDirectory_StatError(t *testing.T) { + _, err := getTargetDirectory("invalid\x00path") + assert.Error(t, err) +} diff --git a/internal/super/init_utils.go b/internal/super/init_utils.go index 572d64e94..1e9f49ee4 100644 --- a/internal/super/init_utils.go +++ b/internal/super/init_utils.go @@ -118,7 +118,10 @@ func getTargetDirectory(directory string) (string, error) { target := filepath.Join(pwd, directory) info, err := os.Stat(target) - if !os.IsNotExist(err) { + if err != nil && !os.IsNotExist(err) { + return "", err + } + if err == nil { if !info.IsDir() { return "", fmt.Errorf("%s is a file", target) }