Skip to content
go-libfossil Check-in [357d10dac6]
Login

Check-in [357d10dac6]

Overview
Comment:fix(manifest): refuse check-in filenames outside the writer profile (#270) (#321)

Checkin wrote any F-card filename it was given. The artifact format's writer profile (4.6.1) forbids a backslash and anything but valid UTF-8, surrogates and overlong forms included; fossil rejects a manifest that names one. storeFileBlobs now refuses such a name or old name before storing anything.

Timelines: family | ancestors | descendants | both | main | trunk
Files: files | file ages | folders
SHA3-256: 357d10dac6dfc5c2d5d3f303111cb90f5e39e93c784efa3ed4adfec36180fb9a
User & Date: [email protected] on 2026-10-11 23:39:02.000
Other Links: branch diff | manifest | tags
Context
2026-10-11
23:44
fix(manifest): reject a non-baseline as a delta manifest's baseline (#275) (#322)

ListFiles took any parseable artifact named by a B card as the baseline, so a delta manifest or a control artifact produced a partial or empty file set. Sections 4.7.3 and 8.3 require the target to be a baseline manifest: a checkin with no B card of its own. ListFiles now returns an error otherwise. check-in: 9fbe647b7f user: [email protected] tags: main, trunk

23:39
fix(manifest): refuse check-in filenames outside the writer profile (#270) (#321)

Checkin wrote any F-card filename it was given. The artifact format's writer profile (4.6.1) forbids a backslash and anything but valid UTF-8, surrogates and overlong forms included; fossil rejects a manifest that names one. storeFileBlobs now refuses such a name or old name before storing anything. check-in: 357d10dac6 user: [email protected] tags: main, trunk

23:34
fix(delta): refuse a source or target of 2^32 bytes or more in Create (#279) (#320)

The delta format holds integers below 2^32 only, so a producer must not write a target length or copy offset at or past that. Create now returns ErrTooLarge for such inputs; Deltify then stores the content whole, as fossil does when a delta is not worthwhile, and the other callers propagate the error. Apply's header check becomes >= so it refuses exactly what Create will not write. The bound is tested on lengths, as a direct test needs a 4 GiB input. check-in: 38eddf43f1 user: [email protected] tags: main, trunk

Changes