Escape state_dir in the db_url derived from it (closes #290)
The derived db_url put state_dir into a file: URL as it was, so SQLite decoded a %HH in the name and ended the path at a ? or #, and the journal mode parameter was lost. It is now built with net/url, which percent-encodes the directory name; SQLite decodes it back and opens state.sqlite3 in that directory. OmitHost keeps the usual form file:/var/lib/pixa/state.sqlite3 and a relative state_dir a path. Model: opus-5-5
This commit is contained in:
@@ -62,6 +62,12 @@ P2: security: per-origin rate limiting
|
||||
another way, such as with `%2F` in the path, whatever else the path holds, or
|
||||
with a user name and password. It also answers 400 for a source path holding a
|
||||
`..` segment, as `/v1/image/` refuses one.
|
||||
- 2026-10-16 a `state_dir` whose name holds `%`, `?` or `#` keeps its database
|
||||
at `state.sqlite3` in that directory (closes #290): the `db_url` derived from
|
||||
it put the name into a `file:` URL as it was, so SQLite read `%41` as `A`, a
|
||||
`?` or `#` ended the path early, and the journal mode parameter was lost. The
|
||||
derived `db_url` is now built with Go's `net/url`, which writes those
|
||||
characters as `%25`, `%3F` and `%23`.
|
||||
- 2026-10-15 a thin source requested with `fit=cover` no longer makes libvips
|
||||
build a huge image (closes #282): libvips' thumbnail scaled the whole source
|
||||
to cover the requested size and copied that into memory before it cut out the
|
||||
|
||||
Reference in New Issue
Block a user