You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Elijah Voigt f42ae56bb4 fix(pages): normalize '.' path segments so ./-prefixed tar entries upload
GNU tar prefixes every entry with ./ when archiving a directory
(tar czf out.tgz . yields ./index.html, ./bin_bg.wasm, …). The path
validator rejected any '.' segment as traversal, so such tarballs failed
with "archive entry has an unsafe path: './...'" and their ./index.html
never satisfied the root-index.html requirement — making ./-prefixed
archives unusable. (.wasm was never the issue: extensions aren't checked
and mime.rs maps .wasm to application/wasm.)

check_entry_path now strips '.' segments (leading and interior) and
returns the normalized path used as the R2 key, while still rejecting
'..', absolute paths, backslashes, NUL, drive letters, empty (//)
segments, and names that normalize to nothing; depth is measured on the
normalized path. Both the zip and tar manifest builders store the
normalized name. +10 tests.

Bean: pages-aalu.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 day ago
..
pages-77lk--pages-static-site-host-on-cloudflare-v0.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-aalu--normalize-path-segments-so-prefixed-tar-entries-ar.md fix(pages): normalize '.' path segments so ./-prefixed tar entries upload 1 day ago
pages-adl9--page-content-serving-from-r2.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-g39t--support-targz-tgz-uploads-gzip.md feat(pages): accept gzip/zstd/xz compressed tar uploads 2 days ago
pages-ihlp--opentofu-infra-deployment-docs-project-docs-polish.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-jaqz--embedded-management-ui-staticindexhtml.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-jgc4--d1-schema-and-query-layer.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-kns6--pages-and-users-json-api.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-lxjz--scaffold-worker-crate-hello-world-builds.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-r4ob--upload-dispatch-foundation-magic-byte-sniffing-tar.md feat(pages): accept gzip/zstd/xz compressed tar uploads 2 days ago
pages-saom--core-policy-modules-slug-mime-upload-validation-he.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-shqc--per-page-and-per-user-trust-opt-out-of-csp-sandbox.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago
pages-u3zc--support-tarxz-uploads-xzlzma2.md feat(pages): accept gzip/zstd/xz compressed tar uploads 2 days ago
pages-w7ow--accept-targz-tarzst-tarxz-archive-uploads.md feat(pages): accept gzip/zstd/xz compressed tar uploads 2 days ago
pages-wadp--support-tarzst-uploads-zstd.md feat(pages): accept gzip/zstd/xz compressed tar uploads 2 days ago
pages-ytau--update-a-page-in-place-re-upload-content-put-apipa.md feat(pages): update a page in place via re-upload [pages-ytau] 1 week ago
pages-zd46--github-oauth-sessions-auth-middleware.md feat(pages): static-site host at pages.elijah.run (v0) 1 week ago