From 97adf00cd447823f11b0731a831065de3660bbab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 09:51:42 +0000 Subject: [PATCH] [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] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 4 +- go.sum | 8 +-- .../github.com/ncruces/go-sqlite3/.gitignore | 12 +++-- .../github.com/ncruces/go-sqlite3/README.md | 4 +- .../github.com/ncruces/go-sqlite3/config.go | 4 +- vendor/github.com/ncruces/go-sqlite3/conn.go | 21 +++++--- .../ncruces/go-sqlite3/conn_iter.go | 11 ---- .../github.com/ncruces/go-sqlite3/conn_old.go | 9 ---- vendor/github.com/ncruces/go-sqlite3/const.go | 5 +- .../ncruces/go-sqlite3/embed/README.md | 2 +- .../ncruces/go-sqlite3/embed/exports.txt | 1 + .../ncruces/go-sqlite3/embed/sqlite3.wasm | Bin 1397089 -> 1397228 bytes vendor/github.com/ncruces/go-sqlite3/func.go | 41 ++++++++------ .../go-sqlite3/internal/util/compiler.go | 27 ---------- .../ncruces/go-sqlite3/internal/util/mem.go | 15 ++++-- .../github.com/ncruces/go-sqlite3/sqlite.go | 9 +--- .../github.com/ncruces/go-sqlite3/vfs/cksm.go | 11 ++-- .../ncruces/go-sqlite3/vfs/const.go | 3 ++ .../github.com/ncruces/go-sqlite3/vfs/file.go | 23 ++++++-- .../ncruces/go-sqlite3/vfs/os_std_rw.go | 13 +++++ .../ncruces/go-sqlite3/vfs/os_unix.go | 22 ++++++++ .../ncruces/go-sqlite3/vfs/os_windows.go | 17 ++++++ .../github.com/ncruces/go-sqlite3/vfs/vfs.go | 51 +++++------------- vendor/github.com/ncruces/go-sqlite3/vtab.go | 4 +- vendor/golang.org/x/crypto/ssh/handshake.go | 47 ++++++++++++---- vendor/modules.txt | 6 +-- 26 files changed, 215 insertions(+), 155 deletions(-) delete mode 100644 vendor/github.com/ncruces/go-sqlite3/conn_iter.go delete mode 100644 vendor/github.com/ncruces/go-sqlite3/conn_old.go delete mode 100644 vendor/github.com/ncruces/go-sqlite3/internal/util/compiler.go create mode 100644 vendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go diff --git a/go.mod b/go.mod index 0c63b42fe..e77fdcbc7 100644 --- a/go.mod +++ b/go.mod @@ -50,7 +50,7 @@ require ( github.com/miekg/dns v1.1.63 github.com/minio/minio-go/v7 v7.0.85 github.com/mitchellh/mapstructure v1.5.0 - github.com/ncruces/go-sqlite3 v0.23.0 + github.com/ncruces/go-sqlite3 v0.24.0 github.com/oklog/ulid v1.3.1 github.com/prometheus/client_golang v1.20.5 github.com/rivo/uniseg v0.4.7 @@ -81,7 +81,7 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.34.0 go.opentelemetry.io/otel/trace v1.34.0 go.uber.org/automaxprocs v1.6.0 - golang.org/x/crypto v0.34.0 + golang.org/x/crypto v0.35.0 golang.org/x/image v0.24.0 golang.org/x/net v0.35.0 golang.org/x/oauth2 v0.26.0 diff --git a/go.sum b/go.sum index 56caa92b4..98aae7836 100644 --- a/go.sum +++ b/go.sum @@ -425,8 +425,8 @@ github.com/moul/http2curl v1.0.0 h1:dRMWoAtb+ePxMlLkrCbAqh4TlPHXvoGUSQ323/9Zahs= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/ncruces/go-sqlite3 v0.23.0 h1:90j/ar8Ywu2AtsfDl5WhO9sgP/rNk76BcKGIzAHO8AQ= -github.com/ncruces/go-sqlite3 v0.23.0/go.mod h1:gq2nriHSczOs11SqGW5+0X+SgLdkdj4K+j4F/AhQ+8g= +github.com/ncruces/go-sqlite3 v0.24.0 h1:Z4jfmzu2NCd4SmyFwLT2OmF3EnTZbqwATvdiuNHNhLA= +github.com/ncruces/go-sqlite3 v0.24.0/go.mod h1:/Vs8ACZHjJ1SA6E9RZUn3EyB1OP3nDQ4z/ar+0fplTQ= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M= @@ -668,8 +668,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.34.0 h1:+/C6tk6rf/+t5DhUketUbD1aNGqiSX3j15Z6xuIDlBA= -golang.org/x/crypto v0.34.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= +golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= diff --git a/vendor/github.com/ncruces/go-sqlite3/.gitignore b/vendor/github.com/ncruces/go-sqlite3/.gitignore index 9a50edc5c..e7fe47155 100644 --- a/vendor/github.com/ncruces/go-sqlite3/.gitignore +++ b/vendor/github.com/ncruces/go-sqlite3/.gitignore @@ -5,9 +5,6 @@ *.so *.dylib -# Go workspace -go.work* - # Test binary, built with `go test -c` *.test @@ -16,4 +13,11 @@ go.work* # Dependency directories (remove the comment below to include it) # vendor/ -tools \ No newline at end of file +tools + +# Go workspace file +go.work +go.work.sum + +# env file +.env \ No newline at end of file diff --git a/vendor/github.com/ncruces/go-sqlite3/README.md b/vendor/github.com/ncruces/go-sqlite3/README.md index 7591f3cb3..cac6ee6b8 100644 --- a/vendor/github.com/ncruces/go-sqlite3/README.md +++ b/vendor/github.com/ncruces/go-sqlite3/README.md @@ -98,7 +98,7 @@ Also, post there if you used this driver for something interesting ([_"Show and tell"_](https://github.com/ncruces/go-sqlite3/discussions/categories/show-and-tell)), have an [idea](https://github.com/ncruces/go-sqlite3/discussions/categories/ideas)… -The [Issue](https://github.com/ncruces/go-sqlite3/issues) tracker is for bugs we want fixed, +The [Issue](https://github.com/ncruces/go-sqlite3/issues) tracker is for bugs, and features we're working on, planning to work on, or asking for help with. ### Alternatives @@ -106,4 +106,4 @@ and features we're working on, planning to work on, or asking for help with. - [`modernc.org/sqlite`](https://pkg.go.dev/modernc.org/sqlite) - [`crawshaw.io/sqlite`](https://pkg.go.dev/crawshaw.io/sqlite) - [`github.com/mattn/go-sqlite3`](https://pkg.go.dev/github.com/mattn/go-sqlite3) -- [`github.com/zombiezen/go-sqlite`](https://pkg.go.dev/github.com/zombiezen/go-sqlite) +- [`github.com/zombiezen/go-sqlite`](https://pkg.go.dev/github.com/zombiezen/go-sqlite) \ No newline at end of file diff --git a/vendor/github.com/ncruces/go-sqlite3/config.go b/vendor/github.com/ncruces/go-sqlite3/config.go index 7fff6ead3..17166b9c5 100644 --- a/vendor/github.com/ncruces/go-sqlite3/config.go +++ b/vendor/github.com/ncruces/go-sqlite3/config.go @@ -45,7 +45,7 @@ func (c *Conn) Config(op DBConfig, arg ...bool) (bool, error) { rc := res_t(c.call("sqlite3_db_config", stk_t(c.handle), stk_t(op), stk_t(argsPtr))) - return util.Read32[uint32](c.mod, argsPtr) != 0, c.error(rc) + return util.ReadBool(c.mod, argsPtr), c.error(rc) } // ConfigLog sets up the error logging callback for the connection. @@ -116,7 +116,7 @@ func (c *Conn) FileControl(schema string, op FcntlOpcode, arg ...any) (any, erro rc = res_t(c.call("sqlite3_file_control", stk_t(c.handle), stk_t(schemaPtr), stk_t(op), stk_t(ptr))) - ret = util.Read32[uint32](c.mod, ptr) != 0 + ret = util.ReadBool(c.mod, ptr) case FCNTL_CHUNK_SIZE: util.Write32(c.mod, ptr, int32(arg[0].(int))) diff --git a/vendor/github.com/ncruces/go-sqlite3/conn.go b/vendor/github.com/ncruces/go-sqlite3/conn.go index fffc7416a..9f9251e9f 100644 --- a/vendor/github.com/ncruces/go-sqlite3/conn.go +++ b/vendor/github.com/ncruces/go-sqlite3/conn.go @@ -3,6 +3,7 @@ package sqlite3 import ( "context" "fmt" + "iter" "math" "math/rand" "net/url" @@ -492,9 +493,9 @@ func (c *Conn) TableColumnMetadata(schema, table, column string) (declType, coll if ptr := util.Read32[ptr_t](c.mod, collSeqPtr); ptr != 0 { collSeq = util.ReadString(c.mod, ptr, _MAX_NAME) } - notNull = util.Read32[uint32](c.mod, notNullPtr) != 0 - autoInc = util.Read32[uint32](c.mod, autoIncPtr) != 0 - primaryKey = util.Read32[uint32](c.mod, primaryKeyPtr) != 0 + notNull = util.ReadBool(c.mod, notNullPtr) + autoInc = util.ReadBool(c.mod, autoIncPtr) + primaryKey = util.ReadBool(c.mod, primaryKeyPtr) } return } @@ -503,10 +504,16 @@ func (c *Conn) error(rc res_t, sql ...string) error { return c.sqlite.error(rc, c.handle, sql...) } -func (c *Conn) stmtsIter(yield func(*Stmt) bool) { - for _, s := range c.stmts { - if !yield(s) { - break +// Stmts returns an iterator for the prepared statements +// associated with the database connection. +// +// https://sqlite.org/c3ref/next_stmt.html +func (c *Conn) Stmts() iter.Seq[*Stmt] { + return func(yield func(*Stmt) bool) { + for _, s := range c.stmts { + if !yield(s) { + break + } } } } diff --git a/vendor/github.com/ncruces/go-sqlite3/conn_iter.go b/vendor/github.com/ncruces/go-sqlite3/conn_iter.go deleted file mode 100644 index 470f0ade2..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/conn_iter.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build go1.23 - -package sqlite3 - -import "iter" - -// Stmts returns an iterator for the prepared statements -// associated with the database connection. -// -// https://sqlite.org/c3ref/next_stmt.html -func (c *Conn) Stmts() iter.Seq[*Stmt] { return c.stmtsIter } diff --git a/vendor/github.com/ncruces/go-sqlite3/conn_old.go b/vendor/github.com/ncruces/go-sqlite3/conn_old.go deleted file mode 100644 index 4663fa04d..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/conn_old.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build !go1.23 - -package sqlite3 - -// Stmts returns an iterator for the prepared statements -// associated with the database connection. -// -// https://sqlite.org/c3ref/next_stmt.html -func (c *Conn) Stmts() func(func(*Stmt) bool) { return c.stmtsIter } diff --git a/vendor/github.com/ncruces/go-sqlite3/const.go b/vendor/github.com/ncruces/go-sqlite3/const.go index 086902a6c..82d80515e 100644 --- a/vendor/github.com/ncruces/go-sqlite3/const.go +++ b/vendor/github.com/ncruces/go-sqlite3/const.go @@ -259,7 +259,10 @@ const ( DBCONFIG_TRUSTED_SCHEMA DBConfig = 1017 DBCONFIG_STMT_SCANSTATUS DBConfig = 1018 DBCONFIG_REVERSE_SCANORDER DBConfig = 1019 - // DBCONFIG_MAX DBConfig = 1019 + DBCONFIG_ENABLE_ATTACH_CREATE DBConfig = 1020 + DBCONFIG_ENABLE_ATTACH_WRITE DBConfig = 1021 + DBCONFIG_ENABLE_COMMENTS DBConfig = 1022 + // DBCONFIG_MAX DBConfig = 1022 ) // FcntlOpcode are the available opcodes for [Conn.FileControl]. diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/README.md b/vendor/github.com/ncruces/go-sqlite3/embed/README.md index 59329a917..765c4b685 100644 --- a/vendor/github.com/ncruces/go-sqlite3/embed/README.md +++ b/vendor/github.com/ncruces/go-sqlite3/embed/README.md @@ -1,6 +1,6 @@ # Embeddable Wasm build of SQLite -This folder includes an embeddable Wasm build of SQLite 3.49.0 for use with +This folder includes an embeddable Wasm build of SQLite 3.49.1 for use with [`github.com/ncruces/go-sqlite3`](https://pkg.go.dev/github.com/ncruces/go-sqlite3). The following optional features are compiled in: diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/exports.txt b/vendor/github.com/ncruces/go-sqlite3/embed/exports.txt index 597c79547..84d6102b8 100644 --- a/vendor/github.com/ncruces/go-sqlite3/embed/exports.txt +++ b/vendor/github.com/ncruces/go-sqlite3/embed/exports.txt @@ -80,6 +80,7 @@ sqlite3_interrupt sqlite3_invoke_busy_handler_go sqlite3_last_insert_rowid sqlite3_limit +sqlite3_log_go sqlite3_malloc64 sqlite3_open_v2 sqlite3_overload_function diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/sqlite3.wasm b/vendor/github.com/ncruces/go-sqlite3/embed/sqlite3.wasm index e61dc9356ab014ca91e7b68094f134df1ce56807..713fc06758f7efc042ac58ea3cd58f80c2d426f7 100644 GIT binary patch delta 86187 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%0Arm7~co8hd{V6;j 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 diff --git a/vendor/github.com/ncruces/go-sqlite3/func.go b/vendor/github.com/ncruces/go-sqlite3/func.go index 6b69368b4..f907fa940 100644 --- a/vendor/github.com/ncruces/go-sqlite3/func.go +++ b/vendor/github.com/ncruces/go-sqlite3/func.go @@ -2,6 +2,7 @@ package sqlite3 import ( "context" + "io" "sync" "github.com/tetratelabs/wazero/api" @@ -85,12 +86,18 @@ func (c *Conn) CreateWindowFunction(name string, nArg int, flag FunctionFlag, fn var funcPtr ptr_t defer c.arena.mark()() namePtr := c.arena.string(name) - if fn != nil { - funcPtr = util.AddHandle(c.ctx, fn) - } call := "sqlite3_create_aggregate_function_go" - if _, ok := fn().(WindowFunction); ok { - call = "sqlite3_create_window_function_go" + if fn != nil { + agg := fn() + if c, ok := agg.(io.Closer); ok { + if err := c.Close(); err != nil { + return err + } + } + if _, ok := agg.(WindowFunction); ok { + call = "sqlite3_create_window_function_go" + } + funcPtr = util.AddHandle(c.ctx, fn) } rc := res_t(c.call(call, stk_t(c.handle), stk_t(namePtr), stk_t(nArg), @@ -168,20 +175,24 @@ func stepCallback(ctx context.Context, mod api.Module, pCtx, pAgg, pApp ptr_t, n fn.Step(Context{db, pCtx}, args[:nArg]...) } -func finalCallback(ctx context.Context, mod api.Module, pCtx, pAgg, pApp ptr_t) { +func valueCallback(ctx context.Context, mod api.Module, pCtx, pAgg, pApp ptr_t, final int32) { db := ctx.Value(connKey{}).(*Conn) fn, handle := callbackAggregate(db, pAgg, pApp) fn.Value(Context{db, pCtx}) - if err := util.DelHandle(ctx, handle); err != nil { - Context{db, pCtx}.ResultError(err) - return // notest - } -} -func valueCallback(ctx context.Context, mod api.Module, pCtx, pAgg ptr_t) { - db := ctx.Value(connKey{}).(*Conn) - fn := util.GetHandle(db.ctx, pAgg).(AggregateFunction) - fn.Value(Context{db, pCtx}) + // Cleanup. + if final != 0 { + var err error + if handle != 0 { + err = util.DelHandle(ctx, handle) + } else if c, ok := fn.(io.Closer); ok { + err = c.Close() + } + if err != nil { + Context{db, pCtx}.ResultError(err) + return // notest + } + } } func inverseCallback(ctx context.Context, mod api.Module, pCtx, pAgg ptr_t, nArg int32, pArg ptr_t) { diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/util/compiler.go b/vendor/github.com/ncruces/go-sqlite3/internal/util/compiler.go deleted file mode 100644 index aeefcced9..000000000 --- a/vendor/github.com/ncruces/go-sqlite3/internal/util/compiler.go +++ /dev/null @@ -1,27 +0,0 @@ -package util - -import ( - "runtime" - - "golang.org/x/sys/cpu" -) - -func CompilerSupported() bool { - switch runtime.GOOS { - case "linux", "android", - "windows", "darwin", - "freebsd", "netbsd", "dragonfly", - "solaris", "illumos": - break - default: - return false - } - switch runtime.GOARCH { - case "amd64": - return cpu.X86.HasSSE41 - case "arm64": - return true - default: - return false - } -} diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/util/mem.go b/vendor/github.com/ncruces/go-sqlite3/internal/util/mem.go index bfb1a6440..d2fea08b4 100644 --- a/vendor/github.com/ncruces/go-sqlite3/internal/util/mem.go +++ b/vendor/github.com/ncruces/go-sqlite3/internal/util/mem.go @@ -26,9 +26,6 @@ func View(mod api.Module, ptr Ptr_t, size int64) []byte { if ptr == 0 { panic(NilErr) } - if size == 0 { - return nil - } if uint64(size) > math.MaxUint32 { panic(RangeErr) } @@ -110,6 +107,18 @@ func WriteFloat64(mod api.Module, ptr Ptr_t, v float64) { Write64(mod, ptr, math.Float64bits(v)) } +func ReadBool(mod api.Module, ptr Ptr_t) bool { + return Read32[int32](mod, ptr) != 0 +} + +func WriteBool(mod api.Module, ptr Ptr_t, v bool) { + var i int32 + if v { + i = 1 + } + Write32(mod, ptr, i) +} + func ReadString(mod api.Module, ptr Ptr_t, maxlen int64) string { if ptr == 0 { panic(NilErr) diff --git a/vendor/github.com/ncruces/go-sqlite3/sqlite.go b/vendor/github.com/ncruces/go-sqlite3/sqlite.go index 8203603e7..9e2d1d381 100644 --- a/vendor/github.com/ncruces/go-sqlite3/sqlite.go +++ b/vendor/github.com/ncruces/go-sqlite3/sqlite.go @@ -47,11 +47,7 @@ func compileSQLite() { ctx := context.Background() cfg := RuntimeConfig if cfg == nil { - if util.CompilerSupported() { - cfg = wazero.NewRuntimeConfigCompiler() - } else { - cfg = wazero.NewRuntimeConfigInterpreter() - } + cfg = wazero.NewRuntimeConfig() if bits.UintSize < 64 { cfg = cfg.WithMemoryLimitPages(512) // 32MB } else { @@ -321,8 +317,7 @@ func exportCallbacks(env wazero.HostModuleBuilder) wazero.HostModuleBuilder { util.ExportFuncVI(env, "go_destroy", destroyCallback) util.ExportFuncVIIII(env, "go_func", funcCallback) util.ExportFuncVIIIII(env, "go_step", stepCallback) - util.ExportFuncVIII(env, "go_final", finalCallback) - util.ExportFuncVII(env, "go_value", valueCallback) + util.ExportFuncVIIII(env, "go_value", valueCallback) util.ExportFuncVIIII(env, "go_inverse", inverseCallback) util.ExportFuncVIIII(env, "go_collation_needed", collationCallback) util.ExportFuncIIIIII(env, "go_compare", compareCallback) diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/cksm.go b/vendor/github.com/ncruces/go-sqlite3/vfs/cksm.go index 39493df99..041defec3 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/cksm.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/cksm.go @@ -47,11 +47,12 @@ type cksmFlags struct { func (c cksmFile) ReadAt(p []byte, off int64) (n int, err error) { n, err = c.File.ReadAt(p, off) + p = p[:n] // SQLite is reading the header of a database file. if c.isDB && off == 0 && len(p) >= 100 && bytes.HasPrefix(p, []byte("SQLite format 3\000")) { - c.init(p) + c.init((*[100]byte)(p)) } // Verify checksums. @@ -69,7 +70,7 @@ func (c cksmFile) WriteAt(p []byte, off int64) (n int, err error) { // SQLite is writing the first page of a database file. if c.isDB && off == 0 && len(p) >= 100 && bytes.HasPrefix(p, []byte("SQLite format 3\000")) { - c.init(p) + c.init((*[100]byte)(p)) } // Compute checksums. @@ -122,12 +123,16 @@ func (c cksmFile) fileControl(ctx context.Context, mod api.Module, op _FcntlOpco return vfsFileControlImpl(ctx, mod, c.File, op, pArg) } -func (f *cksmFlags) init(header []byte) { +func (f *cksmFlags) init(header *[100]byte) { f.pageSize = 256 * int(binary.LittleEndian.Uint16(header[16:18])) if r := header[20] == 8; r != f.computeCksm { f.computeCksm = r f.verifyCksm = r } + if !sql3util.ValidPageSize(f.pageSize) { + f.computeCksm = false + f.verifyCksm = false + } } func cksmCompute(a []byte) (cksm [8]byte) { diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/const.go b/vendor/github.com/ncruces/go-sqlite3/vfs/const.go index dc3b0db83..b789d1203 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/const.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/const.go @@ -31,6 +31,7 @@ const ( _READONLY _ErrorCode = util.READONLY _IOERR _ErrorCode = util.IOERR _NOTFOUND _ErrorCode = util.NOTFOUND + _FULL _ErrorCode = util.FULL _CANTOPEN _ErrorCode = util.CANTOPEN _IOERR_READ _ErrorCode = util.IOERR_READ _IOERR_SHORT_READ _ErrorCode = util.IOERR_SHORT_READ @@ -57,10 +58,12 @@ const ( _IOERR_COMMIT_ATOMIC _ErrorCode = util.IOERR_COMMIT_ATOMIC _IOERR_ROLLBACK_ATOMIC _ErrorCode = util.IOERR_ROLLBACK_ATOMIC _IOERR_DATA _ErrorCode = util.IOERR_DATA + _IOERR_CORRUPTFS _ErrorCode = util.IOERR_CORRUPTFS _BUSY_SNAPSHOT _ErrorCode = util.BUSY_SNAPSHOT _CANTOPEN_FULLPATH _ErrorCode = util.CANTOPEN_FULLPATH _CANTOPEN_ISDIR _ErrorCode = util.CANTOPEN_ISDIR _READONLY_CANTINIT _ErrorCode = util.READONLY_CANTINIT + _READONLY_DIRECTORY _ErrorCode = util.READONLY_DIRECTORY _OK_SYMLINK _ErrorCode = util.OK_SYMLINK ) 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 diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go b/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go new file mode 100644 index 000000000..40a5f270a --- /dev/null +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/os_std_rw.go @@ -0,0 +1,13 @@ +//go:build !unix && (!windows || sqlite3_dotlk) + +package vfs + +import "os" + +func osReadAt(file *os.File, p []byte, off int64) (int, error) { + return file.ReadAt(p, off) +} + +func osWriteAt(file *os.File, p []byte, off int64) (int, error) { + return file.WriteAt(p, off) +} 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 c4f9ba870..9f42b5f6c 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/os_unix.go @@ -25,6 +25,28 @@ func osAccess(path string, flags AccessFlag) error { return unix.Access(path, access) } +func osReadAt(file *os.File, p []byte, off int64) (int, error) { + n, err := file.ReadAt(p, off) + if errno, ok := err.(unix.Errno); ok { + switch errno { + case + unix.ERANGE, + unix.EIO, + unix.ENXIO: + return n, _IOERR_CORRUPTFS + } + } + return n, err +} + +func osWriteAt(file *os.File, p []byte, off int64) (int, error) { + n, err := file.WriteAt(p, off) + if errno, ok := err.(unix.Errno); ok && errno == unix.ENOSPC { + return n, _FULL + } + return n, err +} + func osSetMode(file *os.File, modeof string) error { fi, err := os.Stat(modeof) if err != nil { diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go b/vendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go index 0398f4760..ecce3cfa2 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/os_windows.go @@ -9,6 +9,23 @@ import ( "golang.org/x/sys/windows" ) +func osReadAt(file *os.File, p []byte, off int64) (int, error) { + return file.ReadAt(p, off) +} + +func osWriteAt(file *os.File, p []byte, off int64) (int, error) { + n, err := file.WriteAt(p, off) + if errno, ok := err.(windows.Errno); ok { + switch errno { + case + windows.ERROR_HANDLE_DISK_FULL, + windows.ERROR_DISK_FULL: + return n, _FULL + } + } + return n, err +} + func osGetSharedLock(file *os.File) _ErrorCode { // Acquire the PENDING lock temporarily before acquiring a new SHARED lock. rc := osReadLock(file, _PENDING_BYTE, 1, 0) diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go b/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go index ca105fff6..c70507caa 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/vfs.go @@ -58,13 +58,8 @@ func vfsFind(ctx context.Context, mod api.Module, zVfsName ptr_t) uint32 { } func vfsLocaltime(ctx context.Context, mod api.Module, pTm ptr_t, t int64) _ErrorCode { - tm := time.Unix(t, 0) - var isdst int32 - if tm.IsDST() { - isdst = 1 - } - const size = 32 / 8 + tm := time.Unix(t, 0) // https://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html util.Write32(mod, pTm+0*size, int32(tm.Second())) util.Write32(mod, pTm+1*size, int32(tm.Minute())) @@ -74,7 +69,7 @@ func vfsLocaltime(ctx context.Context, mod api.Module, pTm ptr_t, t int64) _Erro util.Write32(mod, pTm+5*size, int32(tm.Year()-1900)) util.Write32(mod, pTm+6*size, int32(tm.Weekday()-time.Sunday)) util.Write32(mod, pTm+7*size, int32(tm.YearDay()-1)) - util.Write32(mod, pTm+8*size, isdst) + util.WriteBool(mod, pTm+8*size, tm.IsDST()) return _OK } @@ -123,11 +118,7 @@ func vfsAccess(ctx context.Context, mod api.Module, pVfs, zPath ptr_t, flags Acc path := util.ReadString(mod, zPath, _MAX_PATHNAME) ok, err := vfs.Access(path, flags) - var res int32 - if ok { - res = 1 - } - util.Write32(mod, pResOut, res) + util.WriteBool(mod, pResOut, ok) return vfsErrorCode(err, _IOERR_ACCESS) } @@ -151,9 +142,8 @@ func vfsOpen(ctx context.Context, mod api.Module, pVfs, zPath, pFile ptr_t, flag file.SetPowersafeOverwrite(b) } } - if file, ok := file.(FileSharedMemory); ok && - pOutVFS != 0 && file.SharedMemory() != nil { - util.Write32(mod, pOutVFS, int32(1)) + if file, ok := file.(FileSharedMemory); ok && pOutVFS != 0 { + util.WriteBool(mod, pOutVFS, file.SharedMemory() != nil) } if pOutFlags != 0 { util.Write32(mod, pOutFlags, flags) @@ -225,12 +215,7 @@ func vfsUnlock(ctx context.Context, mod api.Module, pFile ptr_t, eLock LockLevel func vfsCheckReservedLock(ctx context.Context, mod api.Module, pFile, pResOut ptr_t) _ErrorCode { file := vfsFileGet(ctx, mod, pFile).(File) locked, err := file.CheckReservedLock() - - var res int32 - if locked { - res = 1 - } - util.Write32(mod, pResOut, res) + util.WriteBool(mod, pResOut, locked) return vfsErrorCode(err, _IOERR_CHECKRESERVEDLOCK) } @@ -254,24 +239,20 @@ func vfsFileControlImpl(ctx context.Context, mod api.Module, file File, op _Fcnt case _FCNTL_PERSIST_WAL: if file, ok := file.(FilePersistWAL); ok { - if i := util.Read32[int32](mod, pArg); i >= 0 { - file.SetPersistWAL(i != 0) - } else if file.PersistWAL() { - util.Write32(mod, pArg, int32(1)) + if i := util.Read32[int32](mod, pArg); i < 0 { + util.WriteBool(mod, pArg, file.PersistWAL()) } else { - util.Write32(mod, pArg, int32(0)) + file.SetPersistWAL(i != 0) } return _OK } case _FCNTL_POWERSAFE_OVERWRITE: if file, ok := file.(FilePowersafeOverwrite); ok { - if i := util.Read32[int32](mod, pArg); i >= 0 { - file.SetPowersafeOverwrite(i != 0) - } else if file.PowersafeOverwrite() { - util.Write32(mod, pArg, int32(1)) + if i := util.Read32[int32](mod, pArg); i < 0 { + util.WriteBool(mod, pArg, file.PowersafeOverwrite()) } else { - util.Write32(mod, pArg, int32(0)) + file.SetPowersafeOverwrite(i != 0) } return _OK } @@ -293,11 +274,7 @@ func vfsFileControlImpl(ctx context.Context, mod api.Module, file File, op _Fcnt case _FCNTL_HAS_MOVED: if file, ok := file.(FileHasMoved); ok { moved, err := file.HasMoved() - var val uint32 - if moved { - val = 1 - } - util.Write32(mod, pArg, val) + util.WriteBool(mod, pArg, moved) return vfsErrorCode(err, _IOERR_FSTAT) } @@ -394,7 +371,7 @@ func vfsFileControlImpl(ctx context.Context, mod api.Module, file File, op _Fcnt case _FCNTL_LOCK_TIMEOUT: if file, ok := file.(FileSharedMemory); ok { if shm, ok := file.SharedMemory().(blockingSharedMemory); ok { - shm.shmEnableBlocking(util.Read32[uint32](mod, pArg) != 0) + shm.shmEnableBlocking(util.ReadBool(mod, pArg)) return _OK } } diff --git a/vendor/github.com/ncruces/go-sqlite3/vtab.go b/vendor/github.com/ncruces/go-sqlite3/vtab.go index 278195e92..884aaaa0c 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vtab.go +++ b/vendor/github.com/ncruces/go-sqlite3/vtab.go @@ -399,10 +399,10 @@ func (idx *IndexInfo) save() { util.Write32(mod, ptr+20, int32(idx.IdxNum)) if idx.IdxStr != "" { util.Write32(mod, ptr+24, idx.c.newString(idx.IdxStr)) - util.Write32(mod, ptr+28, int32(1)) // needToFreeIdxStr + util.WriteBool(mod, ptr+28, true) // needToFreeIdxStr } if idx.OrderByConsumed { - util.Write32(mod, ptr+32, int32(1)) + util.WriteBool(mod, ptr+32, true) } util.WriteFloat64(mod, ptr+40, idx.EstimatedCost) util.Write64(mod, ptr+48, idx.EstimatedRows) diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index fef687db0..c9202b05d 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -25,6 +25,11 @@ const debugHandshake = false // quickly. const chanSize = 16 +// maxPendingPackets sets the maximum number of packets to queue while waiting +// for KEX to complete. This limits the total pending data to maxPendingPackets +// * maxPacket bytes, which is ~16.8MB. +const maxPendingPackets = 64 + // keyingTransport is a packet based transport that supports key // changes. It need not be thread-safe. It should pass through // msgNewKeys in both directions. @@ -73,11 +78,19 @@ type handshakeTransport struct { incoming chan []byte readError error - mu sync.Mutex - writeError error - sentInitPacket []byte - sentInitMsg *kexInitMsg - pendingPackets [][]byte // Used when a key exchange is in progress. + mu sync.Mutex + // Condition for the above mutex. It is used to notify a completed key + // exchange or a write failure. Writes can wait for this condition while a + // key exchange is in progress. + writeCond *sync.Cond + writeError error + sentInitPacket []byte + sentInitMsg *kexInitMsg + // Used to queue writes when a key exchange is in progress. The length is + // limited by pendingPacketsSize. Once full, writes will block until the key + // exchange is completed or an error occurs. If not empty, it is emptied + // all at once when the key exchange is completed in kexLoop. + pendingPackets [][]byte writePacketsLeft uint32 writeBytesLeft int64 userAuthComplete bool // whether the user authentication phase is complete @@ -134,6 +147,7 @@ func newHandshakeTransport(conn keyingTransport, config *Config, clientVersion, config: config, } + t.writeCond = sync.NewCond(&t.mu) t.resetReadThresholds() t.resetWriteThresholds() @@ -260,6 +274,7 @@ func (t *handshakeTransport) recordWriteError(err error) { defer t.mu.Unlock() if t.writeError == nil && err != nil { t.writeError = err + t.writeCond.Broadcast() } } @@ -363,6 +378,8 @@ write: } } t.pendingPackets = t.pendingPackets[:0] + // Unblock writePacket if waiting for KEX. + t.writeCond.Broadcast() t.mu.Unlock() } @@ -577,11 +594,20 @@ func (t *handshakeTransport) writePacket(p []byte) error { } if t.sentInitMsg != nil { - // Copy the packet so the writer can reuse the buffer. - cp := make([]byte, len(p)) - copy(cp, p) - t.pendingPackets = append(t.pendingPackets, cp) - return nil + if len(t.pendingPackets) < maxPendingPackets { + // Copy the packet so the writer can reuse the buffer. + cp := make([]byte, len(p)) + copy(cp, p) + t.pendingPackets = append(t.pendingPackets, cp) + return nil + } + for t.sentInitMsg != nil { + // Block and wait for KEX to complete or an error. + t.writeCond.Wait() + if t.writeError != nil { + return t.writeError + } + } } if t.writeBytesLeft > 0 { @@ -598,6 +624,7 @@ func (t *handshakeTransport) writePacket(p []byte) error { if err := t.pushPacket(p); err != nil { t.writeError = err + t.writeCond.Broadcast() } return nil diff --git a/vendor/modules.txt b/vendor/modules.txt index 83596a4a0..5fc5887e1 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -501,8 +501,8 @@ github.com/modern-go/reflect2 # github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 ## explicit github.com/munnerz/goautoneg -# github.com/ncruces/go-sqlite3 v0.23.0 -## explicit; go 1.22 +# github.com/ncruces/go-sqlite3 v0.24.0 +## explicit; go 1.23.0 github.com/ncruces/go-sqlite3 github.com/ncruces/go-sqlite3/driver github.com/ncruces/go-sqlite3/embed @@ -1056,7 +1056,7 @@ go.uber.org/multierr # golang.org/x/arch v0.13.0 ## explicit; go 1.18 golang.org/x/arch/x86/x86asm -# golang.org/x/crypto v0.34.0 +# golang.org/x/crypto v0.35.0 ## explicit; go 1.23.0 golang.org/x/crypto/acme golang.org/x/crypto/acme/autocert