This commit is contained in:
Nuno Cruces
2025-05-13 14:27:04 +01:00
parent a0771f2363
commit c1bed07e3a
2 changed files with 26 additions and 9 deletions

View File

@@ -295,6 +295,17 @@ func TestConn_Filename(t *testing.T) {
t.Parallel()
file := filepath.Join(t.TempDir(), "test.db")
f, err := os.Create(file)
if err != nil {
t.Fatal(err)
}
f.Close()
file, err = filepath.EvalSymlinks(file)
if err != nil {
t.Fatal(err)
}
db, err := sqlite3.Open(file)
if err != nil {
t.Fatal(err)

View File

@@ -13,22 +13,28 @@ import (
type vfsOS struct{}
func (vfsOS) FullPathname(path string) (string, error) {
path, err := filepath.Abs(path)
link, err := evalSymlinks(path)
if err != nil {
return "", err
}
return path, testSymlinks(filepath.Dir(path))
full, err := filepath.Abs(link)
if err == nil && link != path {
err = _OK_SYMLINK
}
return full, err
}
func testSymlinks(path string) error {
p, err := filepath.EvalSymlinks(path)
func evalSymlinks(path string) (string, error) {
var file string
_, err := os.Lstat(path)
if errors.Is(err, fs.ErrNotExist) {
path, file = filepath.Split(path)
}
path, err = filepath.EvalSymlinks(path)
if err != nil {
return err
return "", err
}
if p != path {
return _OK_SYMLINK
}
return nil
return filepath.Join(path, file), nil
}
func (vfsOS) Delete(path string, syncDir bool) error {