summaryrefslogtreecommitdiff
path: root/vendor/github.com/ncruces/go-sqlite3/vfs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs')
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/file.go19
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go3
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/os_std.go (renamed from vendor/github.com/ncruces/go-sqlite3/vfs/os_std_access.go)11
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/os_std_mode.go14
-rw-r--r--vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go2
5 files changed, 25 insertions, 24 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go
index 176b2507b..ebd42e9ad 100644
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go
+++ b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go
@@ -19,17 +19,18 @@ func (vfsOS) FullPathname(path string) (string, error) {
if err != nil {
return "", err
}
- fi, err := os.Lstat(path)
+ return path, testSymlinks(filepath.Dir(path))
+}
+
+func testSymlinks(path string) error {
+ p, err := filepath.EvalSymlinks(path)
if err != nil {
- if errors.Is(err, fs.ErrNotExist) {
- return path, nil
- }
- return "", err
+ return err
}
- if fi.Mode()&fs.ModeSymlink != 0 {
- err = _OK_SYMLINK
+ if p != path {
+ return _OK_SYMLINK
}
- return path, err
+ return nil
}
func (vfsOS) Delete(path string, syncDir bool) error {
@@ -74,7 +75,7 @@ func (vfsOS) Open(name string, flags OpenFlag) (File, OpenFlag, error) {
}
func (vfsOS) OpenFilename(name *Filename, flags OpenFlag) (File, OpenFlag, error) {
- var oflags int
+ oflags := _O_NOFOLLOW
if flags&OPEN_EXCLUSIVE != 0 {
oflags |= os.O_EXCL
}
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
index 843488966..eb12eba09 100644
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
+++ b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
@@ -43,7 +43,8 @@ func Create(name string, data []byte) {
}
// Convert data from WAL/2 to rollback journal.
- if len(data) >= 20 && (data[18] == 2 && data[19] == 2 ||
+ if len(data) >= 20 && (false ||
+ data[18] == 2 && data[19] == 2 ||
data[18] == 3 && data[19] == 3) {
data[18] = 1
data[19] = 1
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_access.go b/vendor/github.com/ncruces/go-sqlite3/vfs/os_std.go
index 1621c0998..87ce58b67 100644
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_access.go
+++ b/vendor/github.com/ncruces/go-sqlite3/vfs/os_std.go
@@ -7,6 +7,8 @@ import (
"os"
)
+const _O_NOFOLLOW = 0
+
func osAccess(path string, flags AccessFlag) error {
fi, err := os.Stat(path)
if err != nil {
@@ -34,3 +36,12 @@ func osAccess(path string, flags AccessFlag) error {
}
return nil
}
+
+func osSetMode(file *os.File, modeof string) error {
+ fi, err := os.Stat(modeof)
+ if err != nil {
+ return err
+ }
+ file.Chmod(fi.Mode())
+ return nil
+}
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_mode.go b/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_mode.go
deleted file mode 100644
index ac4904773..000000000
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_mode.go
+++ /dev/null
@@ -1,14 +0,0 @@
-//go:build !unix || sqlite3_nosys
-
-package vfs
-
-import "os"
-
-func osSetMode(file *os.File, modeof string) error {
- fi, err := os.Stat(modeof)
- if err != nil {
- return err
- }
- file.Chmod(fi.Mode())
- return nil
-}
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go b/vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go
index 111af799a..7a540889b 100644
--- a/vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go
+++ b/vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go
@@ -9,6 +9,8 @@ import (
"golang.org/x/sys/unix"
)
+const _O_NOFOLLOW = unix.O_NOFOLLOW
+
func osAccess(path string, flags AccessFlag) error {
var access uint32 // unix.F_OK
switch flags {