diff options
| author | 2025-03-03 09:51:42 +0000 | |
|---|---|---|
| committer | 2025-03-03 09:51:42 +0000 | |
| commit | 0e2e8e54ab85889d3c42cf8b0744c3253065983b (patch) | |
| tree | cd56b8adc1745707063cda5e9d34af8e32d40360 /vendor/github.com/ncruces/go-sqlite3/vfs/file.go | |
| parent | [chore] migrate oauth2 -> codeberg (#3857) (diff) | |
| download | gotosocial-0e2e8e54ab85889d3c42cf8b0744c3253065983b.tar.xz | |
[chore]: Bump github.com/ncruces/go-sqlite3 from 0.23.0 to 0.24.0 (#3862)
Bumps [github.com/ncruces/go-sqlite3](https://github.com/ncruces/go-sqlite3) from 0.23.0 to 0.24.0.
- [Release notes](https://github.com/ncruces/go-sqlite3/releases)
- [Commits](https://github.com/ncruces/go-sqlite3/compare/v0.23.0...v0.24.0)
---
updated-dependencies:
- dependency-name: github.com/ncruces/go-sqlite3
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs/file.go')
| -rw-r--r-- | vendor/github.com/ncruces/go-sqlite3/vfs/file.go | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go index bc90555e7..0a3c9d622 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/file.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/file.go @@ -88,10 +88,13 @@ func (vfsOS) OpenFilename(name *Filename, flags OpenFlag) (File, OpenFlag, error oflags |= os.O_RDWR } + isCreate := flags&(OPEN_CREATE) != 0 + isJournl := flags&(OPEN_MAIN_JOURNAL|OPEN_SUPER_JOURNAL|OPEN_WAL) != 0 + var err error var f *os.File if name == nil { - f, err = os.CreateTemp("", "*.db") + f, err = os.CreateTemp(os.Getenv("SQLITE_TMPDIR"), "*.db") } else { f, err = osutil.OpenFile(name.String(), oflags, 0666) } @@ -102,6 +105,10 @@ func (vfsOS) OpenFilename(name *Filename, flags OpenFlag) (File, OpenFlag, error if errors.Is(err, syscall.EISDIR) { return nil, flags, _CANTOPEN_ISDIR } + if isCreate && isJournl && errors.Is(err, fs.ErrPermission) && + osAccess(name.String(), ACCESS_EXISTS) != nil { + return nil, flags, _READONLY_DIRECTORY + } return nil, flags, err } @@ -119,10 +126,8 @@ func (vfsOS) OpenFilename(name *Filename, flags OpenFlag) (File, OpenFlag, error File: f, psow: true, readOnly: flags&OPEN_READONLY != 0, - syncDir: canSyncDirs && - flags&(OPEN_MAIN_JOURNAL|OPEN_SUPER_JOURNAL|OPEN_WAL) != 0 && - flags&(OPEN_CREATE) != 0, - shm: NewSharedMemory(name.String()+"-shm", flags), + syncDir: canSyncDirs && isCreate && isJournl, + shm: NewSharedMemory(name.String()+"-shm", flags), } return &file, flags, nil } @@ -154,6 +159,14 @@ func (f *vfsFile) Close() error { return f.File.Close() } +func (f *vfsFile) ReadAt(p []byte, off int64) (n int, err error) { + return osReadAt(f.File, p, off) +} + +func (f *vfsFile) WriteAt(p []byte, off int64) (n int, err error) { + return osWriteAt(f.File, p, off) +} + func (f *vfsFile) Sync(flags SyncFlag) error { dataonly := (flags & SYNC_DATAONLY) != 0 fullsync := (flags & 0x0f) == SYNC_FULL |
