Commit Graph

7 Commits

Author SHA1 Message Date
Catherine 970806ab4a Fix opaque panic on invariant violation in ApplyTarPatch.
To reproduce, use PUT to upload this archive (`unzstd | base64 -d`):

KLUv/QRY7QIAxAJhL2IAMDAwMDY0NDAwMDAwMDEAADAwNzU2MAAgMAB1c3RhcgAwAGEAMzM3
YREA/UEF/EC9Y0AdDJBP8GDCTaDGBxATkAAd3gJoMPAbJANAciACGDTAsXKZngAR/m3nXA==

then issue any PATCH request to that site.

After this commit, the server returns "malformed manifest (not
a directory)" instead of "assignment to entry in nil map".

While ideally incoming manifests should be checked for consistency
regardless of how they're uploaded, in practice this is only a self-DoS
so it's probably not worth fixing.

V12-Ref: F-77244
2026-05-30 18:10:43 +00:00
Catherine e40456b51c Correctly handle PATCH requests that overwrite the root node. 2026-05-17 06:46:23 +00:00
Catherine b37ca8cd14 Fix combined partial and incremental updates.
It seems that I forgot to implement incremental update support for
partial updates entirely.
2026-03-25 05:08:42 +00:00
miyuko 7e293d6ef9 Normalize archive member names. 2026-02-10 15:34:13 +00:00
Catherine e9a5a901ec Improve panic messages in ApplyTarPatch. 2026-02-03 09:51:22 +00:00
Catherine 464c40db9c Add Create-Parents: mode to PATCH method.
This acts like `mkdir -p`, making it much less annoying to deploy
e.g. documentation preview generators that use deep paths.

Like before, the site must already exist: we cannot do a CAS on
a non-existent manifest at the moment.
2025-12-04 18:23:44 +00:00
Catherine 460ff41cc9 Allow PATCH method to apply partial updates.
Gated behind the `patch` feature.
2025-12-04 03:00:47 +00:00