Commit Graph
100 Commits
Author SHA1 Message Date
Dustin L. Howett ec398c5a4a Merge pull request #3369 from libarchive/dependabot/github_actions/all-actions-6c7da2231a
CI: Bump the all-actions group with 4 updates
2026-08-10 11:26:44 -05:00
Dustin L. Howett b100df7e65 Merge pull request #3362 from stoeckmann/filter_bits 2026-08-10 00:53:31 -05:00
Dustin L. Howett 682a87b111 Merge pull request #3365 from moodyastra/codex/libarchive-lzx-history-guard
cab: reject LZX matches before initialized history
2026-08-08 14:38:09 -05:00
Dustin L. Howett 6b89e4f9d6 Merge pull request #3340 from subotac/fix/7zip-ppmd-small-read-buffer
7zip: Track PPMd input across read blocks
2026-08-08 13:10:12 -05:00
Dustin L. Howett eff72295a6 Merge pull request #3354 from subotac/fix/write-close-fatal-state
Return fatal when closing a failed writer
2026-08-08 13:08:07 -05:00
Dustin L. Howett f7b8423a0a Merge pull request #3363 from dnelson-1901/zero-tm 2026-08-07 22:39:45 -05:00
Dustin L. Howett c63a9d33de Merge pull request #3357 from dnelson-1901/remove-cat
tar: manually combine test files instead of calling cat
2026-08-07 17:58:10 -05:00
Dustin L. Howett 01f717faea Merge pull request #3298 from DHowett/iso9660-nm-loop
iso9660: rewrite the "NM" extension generator for clarity
2026-08-07 17:57:32 -05:00
Dustin L. Howett 2b0e515913 iso9660: rewrite the "NM" extension generator for clarity
There are other such generators in this code, but this one was the
subject of a recent bug. It was unclear how it worked, since it broke
writing the header, continuation and final entries into three different
places.

I feel this version is more intuitive.
2026-08-07 17:01:14 -05:00
Dustin L. Howett 11fe99baf1 Merge pull request #3360 from subotac/fix/windows-empty-wcs-conversion 2026-08-07 16:51:03 -05:00
Dustin L. Howett b3b2f54e10 Merge pull request #3356 from dunhor/windows-clang-fixes
Fix a number of Windows/clang(-cl) issues
2026-08-06 11:38:16 -05:00
Dustin L. Howett d07177dcc3 Merge pull request #3341 from subotac/fix/root-absolute-path-test 2026-08-05 20:26:26 -05:00
Dustin L. Howett e5a65a5644 Merge pull request #3351 from stoeckmann/support_format
format: Improve format registration error handling
2026-08-03 17:26:03 -05:00
Dustin L. Howett ada220177a Merge pull request #3347 from datauwu/archive-write-share-hdrcharset
archive_write: share hdrcharset option handling
2026-08-03 12:51:31 -05:00
Dustin L. Howett d83294359b Merge pull request #3346 from stoeckmann/append_filter_desync
Always attach filter to correct bidder
2026-08-03 12:48:35 -05:00
Dustin L. Howett 2d91e3a051 Merge pull request #3350 from libarchive/dependabot/github_actions/all-actions-4f142db38a
CI: Bump the all-actions group with 4 updates
2026-08-03 12:07:32 -05:00
Dustin L. Howett c706ac4b56 Merge pull request #3312 from datauwu/formats-use-strrchr 2026-08-02 23:53:08 -05:00
Dustin L. Howett 8c4acda5e7 Merge pull request #3335 from jaipaulcheernam/fix/skip-ppmd8-aes256-test-without-crypto 2026-07-31 09:22:42 -05:00
Dustin L. Howett 280402b7f1 Merge pull request #3339 from datauwu/archive-string-fix-build 2026-07-30 18:21:32 -05:00
Dustin L. Howett 19ff56da4f Merge pull request #3320 from carrerasdarren-cell/fix/iso9660-boot-image-size-overflow
iso9660: avoid boot image block count overflow
2026-07-28 14:32:46 -05:00
Dustin L. Howett 40da2cdc52 Merge pull request #3315 from datauwu/iso9660-remove-per-reader-comp-buf
iso9660: remove per-reader zero comparison buffer
2026-07-27 17:12:53 -05:00
Dustin L. Howett 10ea0e7499 Merge pull request #3302 from datauwu/program-read-fix-uaf
program: fix dangling pointer after close
2026-07-27 17:12:20 -05:00
Dustin L. Howett e207c4b357 Merge pull request #3317 from stoeckmann/rar5_varint
rar5: Improve varint handling
2026-07-27 16:08:31 -05:00
Dustin L. Howett ca6e125867 Merge pull request #3325 from tbontb-iaq/fix/seek-data-null-not-fatal
archive_read: don't poison archive when format lacks seek_data (fixes #3323)
2026-07-27 14:24:12 -05:00
Dustin L. Howett 3e6d656c80 Merge pull request #3322 from datauwu/warc-writer-unify
warc: match other writer styles
2026-07-27 13:43:51 -05:00
Dustin L. Howett 4d3bfca239 Merge pull request #3327 from libarchive/dependabot/github_actions/all-actions-413c1c7ad7
CI: Bump the all-actions group with 6 updates
2026-07-27 12:01:12 -05:00
Dustin L. Howett f5509ae993 Merge pull request #3299 from datauwu/tar-read-fix-uaf
tar: fix UAF when reading GNU sparse headers
2026-07-21 13:13:03 -05:00
Dustin L. Howett 0b71b606dd Merge commit from fork
Fix RAR seek_data cursor underflow
2026-07-21 12:55:13 -05:00
Dustin L. Howett 8dec814f98 Merge pull request #3318 from carrerasdarren-cell/fix/mac-metadata-self-copy-uaf
archive_entry: handle aliased Mac metadata copies
2026-07-21 12:48:06 -05:00
Dustin L. Howett 33da30bd9c Merge pull request #3316 from libarchive/dependabot/github_actions/all-actions-3c55da1aaa
CI: Bump the all-actions group with 6 updates
2026-07-20 19:36:20 -05:00
Dustin L. Howett 3a8f29903f Merge pull request #3306 from stoeckmann/data 2026-07-20 10:25:52 -05:00
Dustin L. Howett 84fbafad32 Merge pull request #3292 from datauwu/xar-fix-mem-leaks
xar: fix several memory leaks
2026-07-17 17:51:23 -05:00
Dustin L. Howett d141f661da Merge pull request #3297 from datauwu/archive-write-fix-uaf
archive_write: fix UAF when switching formats
2026-07-17 15:17:29 -05:00
Dustin L. Howett 10a7247810 Merge pull request #3294 from datauwu/bsdtar-fix-signed-overflow 2026-07-17 14:06:56 -05:00
Dustin L. Howett b85488c37a Merge pull request #3296 from stoeckmann/filter_writer 2026-07-17 14:04:59 -05:00
Dustin L. Howett 47d94d1f92 Merge pull request #3295 from stoeckmann/typos_2
Fix typos
2026-07-17 12:03:55 -05:00
Dustin L. Howett 0362c77f9f Merge pull request #3293 from DHowett/iso9660-nmlen 2026-07-16 11:10:07 -05:00
Dustin L. Howett 87f72b5e6a Merge pull request #3243 from datauwu/tar-prefer-native-appledouble
tar: prefer multibyte pathname for AppleDouble checks
2026-07-14 14:58:23 -05:00
Dustin L. Howett bd57e425f1 Merge pull request #3290 from stoeckmann/cab_skip
cab: Check `__archive_read_consume` result
2026-07-14 14:55:29 -05:00
Dustin L. Howett 8d66ccf261 Merge pull request #3289 from uchiha-bug-hunter/pax-base64-checked-size 2026-07-14 10:44:07 -05:00
Dustin L. Howett 9e0bae9458 Merge pull request #3284 from datauwu/warc-propagate-generated-header-errors
warc: propagate generated header errors
2026-07-14 08:38:29 -05:00
Dustin L. Howett d5a15c706c Merge pull request #3264 from stoeckmann/options_const
options: Use const char pointer where possible
2026-07-13 19:22:46 -05:00
Dustin L. Howett ed6475a64c Merge pull request #3247 from stoeckmann/strnlen
Use strnlen if available
2026-07-13 19:15:34 -05:00
Dustin L. Howett a6a899d655 Merge pull request #3278 from uchiha-bug-hunter/cpio-trailer-uaf
cpio: add regression test for symlink-trailer end-of-archive check
2026-07-13 12:03:30 -05:00
Dustin L. Howett 03b665040a Merge pull request #3287 from libarchive/dependabot/github_actions/all-actions-bfcd148bc6
CI: Bump the all-actions group across 1 directory with 5 updates
2026-07-13 11:42:11 -05:00
Dustin L. Howett d888c11d18 Merge pull request #3270 from daandemeyer/push-qnzponoyonzo
test_sparse_basic: avoid out-of-bounds pointer arithmetic in verify
2026-07-12 23:05:02 -05:00
Dustin L. Howett d030af0ab7 Merge pull request #3282 from datauwu/warc-reject-incomplete-resource-records
warc: reject incomplete resource records
2026-07-12 22:51:31 -05:00
Dustin L. Howett ffc377a02f Merge pull request #3285 from datauwu/uu-fix-null-memcpy-ub
uu: fix null pointer UB in EOF buffering
2026-07-12 22:20:46 -05:00
Dustin L. Howett 5d25dac1a7 Merge pull request #3277 from datauwu/cpio-fix-pointer-lifetime 2026-07-11 07:23:18 -05:00
Dustin L. Howett 4436696356 Merge pull request #3280 from stoeckmann/warc_cleanup 2026-07-11 07:17:58 -05:00
Dustin L. Howett ade8de6f77 Merge pull request #3281 from stoeckmann/warc_bid_check 2026-07-11 07:14:05 -05:00
Dustin L. Howett bf4c5688d8 write: prefer ARCHIVE_OK over literal in set_bytes_per_block 2026-07-10 20:26:37 -05:00
Dustin L. Howett abfcfabbe7 iso9660: prefer ARCHIVE_OK over literal in gen*identifier 2026-07-10 20:26:31 -05:00
Dustin L. Howett a94475b11a shar: prefer ARCHIVE_OK over literal in finish_entry 2026-07-10 20:26:25 -05:00
Dustin L. Howett 8149e6bd92 xz: prefer ARCHIVE_OK over literal in filter_open 2026-07-10 20:26:17 -05:00
Dustin L. Howett 3e8e0cb32d uuencode: prefer ARCHIVE_OK over literal in filter_open 2026-07-10 20:26:08 -05:00
Dustin L. Howett 56bed7f2bd compress: prefer ARCHIVE_OK over literal in filter_open 2026-07-10 20:25:58 -05:00
Dustin L. Howett 65ddb3d0f4 b64: prefer ARCHIVE_OK over literal in filter_open 2026-07-10 20:25:34 -05:00
Dustin L. Howett 98d1ceeca6 Merge pull request #3274 from datauwu/warc-fix-oob-read
warc: parse Content-Length as a bounded field
2026-07-10 16:39:15 -05:00
Dustin L. Howett 8d62a0512a Merge pull request #3257 from R4mbb/fix-pax-all-slash-pathname
pax: handle all-slash pathnames in USTAR name splitting
2026-07-09 10:53:22 -05:00
Dustin L. Howett cb2c1207f0 Merge pull request #3256 from stoeckmann/cab_integers
cab: Refactor data types + extend huffman tables to 16 bit if needed
2026-07-09 10:03:45 -05:00
Dustin L. Howett 1e48c53e9e Merge pull request #3266 from datauwu/pax-fix-oob-read
pax: fix 1-byte OOB read in sparse name building
2026-07-08 22:26:06 -05:00
Dustin L. Howett cfb3eb5497 Merge pull request #3267 from datauwu/iso9660-fix-oob
iso9660: fix 1-byte OOB read in iso-level option
2026-07-08 22:20:50 -05:00
Dustin L. Howett 1d7b49b8d9 Merge pull request #3268 from uchiha-bug-hunter/best-effort-strncat-overread
archive_string: bound best_effort_strncat_in_locale to length
2026-07-08 22:19:43 -05:00
Dustin L. Howett 40a71c8382 Merge pull request #3265 from stoeckmann/ckd_alloc
Check size arithmetic before memory allocations
2026-07-07 13:49:14 -05:00
Dustin L. Howett 6752ed2c27 Merge pull request #3214 from uchiha-bug-hunter/tar-sun-holesdata-overread
tar: add regression test for SUN.holesdata sparse map ending on a digit
2026-07-07 13:45:47 -05:00
Dustin L. Howett 8324372849 Merge pull request #3249 from datauwu/warc-fix-pending-data
warc: fix pending data when skipping entries
2026-07-07 10:47:10 -05:00
Dustin L. Howett 617d422c86 test: make Windows file assertions act like lstat
I've removed our lstat shim and replaced all uses with my_GetFileInformationByName.
2026-07-07 10:24:00 -05:00
Dustin L. Howett 4c7066dd98 Merge pull request #3227 from DHowett/windows-bsdtar-fix-upper-h-mode
win32: fix symlink mode 'H' (hybrid) in wildcard search
2026-07-07 10:23:19 -05:00
Dustin L. Howett f0af7530a1 Merge pull request #3258 from uchiha-bug-hunter/mtree-global-set-overread
mtree: fix out-of-bounds read in process_global_set
2026-07-07 09:26:38 -05:00
Dustin L. Howett 512675e432 Merge pull request #3262 from datauwu/zip-fix-oob-read
zip: fix 1-byte OOB read in Mac extension check
2026-07-07 09:25:11 -05:00
Dustin L. Howett 108381c805 Merge pull request #3263 from datauwu/bsdtar-fix-oob-read
bsdtar: fix 1-byte OOB read in substitution handling
2026-07-07 09:24:58 -05:00
Dustin L. Howett a6b6c50c3b Merge pull request #3260 from mmatuska/constify-fix
7-zip and rar5: add constifications missing in e150c2f41 (#3113)
2026-07-07 09:24:15 -05:00
Dustin L. Howett bcdda15a40 Merge pull request #3223 from DHowett/win32-o-excl
win32: prevent writing through a broken symlink in insecure mode
2026-07-07 09:17:28 -05:00
Dustin L. Howett c16162083a Merge pull request #3253 from datauwu/tar-fix-oob 2026-07-06 21:00:05 -05:00
Dustin L. Howett dbb4e7f28d Merge pull request #3255 from datauwu/iso9660-fix-oob-read 2026-07-06 20:57:53 -05:00
Dustin L. Howett 51060e492b Merge pull request #3236 from uchiha-bug-hunter/acl-from-text-nl-overread
acl: fix over-read on empty field in archive_acl_from_text_nl
2026-07-06 09:29:59 -05:00
Dustin L. Howett f0b9700384 Merge pull request #3246 from stoeckmann/cab_style
cab: Extend Huffman documentation
2026-07-06 00:04:31 -05:00
Dustin L. Howett 7b635176c5 Merge pull request #3244 from datauwu/warc-fix-write-past 2026-07-05 16:15:03 -05:00
Dustin L. Howett 3c3ec69d44 Merge pull request #3232 from kientzle/kientzle-read-data-into-fd-size-boundary
[Write] Truncate write-to-fd at the declared entry size
2026-07-04 15:08:23 -05:00
Dustin L. Howett afc33dfeb4 Merge pull request #3219 from DHowett/custom-clang-in-ci
ci: add a new Lint step that uses a custom-built linter
2026-07-04 14:57:14 -05:00
Dustin L. Howett 3151a76b1e Merge pull request #3237 from datauwu/tar-avoid-redundant-mode
tar: avoid redundant mode parsing
2026-07-04 14:56:02 -05:00
Dustin L. Howett cebab49b99 Merge pull request #3233 from stoeckmann/archive_entry_new2
Check `archive_entry_new2` return value
2026-07-04 14:51:49 -05:00
Dustin L. Howett 0cb18445d3 Merge pull request #3234 from stoeckmann/raw_oflow
raw: Properly treat huge inputs
2026-07-04 14:51:31 -05:00
Dustin L. Howett e19d93fe22 lint: compile la-lint and use in place of clang-tidy 2026-07-04 14:42:27 -05:00
Dustin L. Howett 942984fd7d Merge commit '25ef914386252adbf67d07d6c5bf018dfcbe34a9' as 'build/la-lint' 2026-07-04 14:42:27 -05:00
Dustin L. Howett 25ef914386 Squashed 'build/la-lint/' content from commit 66dbe023
git-subtree-dir: build/la-lint
git-subtree-split: 66dbe023892df333ae794f6004553ff0a3d32275
2026-07-04 14:42:27 -05:00
Dustin L. Howett c0f58c7b34 build: add a new "lint" workflow that runs clang-tidy 2026-07-04 14:42:26 -05:00
Dustin L. Howett 89efbd80de build: add ENABLE_CLANG_TIDY and CLANG_TIDY_PATH 2026-07-04 14:42:26 -05:00
Dustin L. Howett 4767d73519 Merge pull request #3239 from datauwu/warc-require-size 2026-07-04 14:24:22 -05:00
Dustin L. Howett 5933c80ae5 Merge pull request #3229 from stoeckmann/cab_e8 2026-07-03 13:38:20 -05:00
Dustin L. Howett 42b2444920 Merge pull request #3208 from datauwu/7zip-skip-defined-bitmaps 2026-07-02 20:22:52 -05:00
Dustin L. Howett 1162aaeccb Merge pull request #3224 from datauwu/formats-remove-unused-state
formats: remove unused states from 7 formats
2026-07-02 17:27:28 -05:00
Dustin L. Howett 6c97b0ae54 Merge pull request #3226 from uchiha-bug-hunter/pathmatch-wide-bracket-overread
pathmatch: fix wide-char bracket over-read in pm_w
2026-07-02 14:40:59 -05:00
Dustin L. Howett e3f9ed95b7 win32: repair symlink mode 'H' (hybrid) in wildcard search
The Windows disk reader supports wildcards by converting a path like
"foo/*" into a single tree rooted at "foo/". This does not play nicely
with symlink mode `H`, which treats the first item in each tree as a
dereferenced link (L) and all subsequent items as physical links (P). On
Windows, we take the first _match_ in L mode and all subsequent
descendants and matches in P mode.

This creates a behavioral difference between `bsdtar -c -H *` and
`bsdtar -c -H one two three`.

This commit changes how we handle H->L/P transitions when doing wildcard
matches. The transition from H to P is now done when we descend into our
first directory, and we switch back to H mode when we ascend out of
it[^1].

Closes #3222

[^1]: This does not matter in practice because tree is breadth-first
rather than depth-first, but I've done it in the interest of
completeness and not leaving ourselves caltrops to step on later.
2026-07-02 14:26:40 -05:00
Dustin L. Howett 0c856d3a8f Merge pull request #3206 from DHowett/win32-symlink-bypass 2026-07-02 07:25:37 -05:00
Dustin L. Howett e707414ed8 win32: prevent writing through a broken symlink in insecure mode
The comments document that we were expecting O_EXCL behavior, and
archive_write_disk_posix uses O_EXCL as well. Let's use O_EXCL's nearest
equivalent.
2026-07-01 21:43:09 -05:00
Dustin L. Howett 52bf591c1a Merge pull request #3221 from stoeckmann/callback_data_check 2026-07-01 16:04:34 -05:00
Dustin L. Howett 983f8da4be Merge pull request #3216 from setarcos/loongarch
test: fix incorrect hole count reporting on loongarch64
2026-07-01 12:03:18 -05:00
Dustin L. Howett 0b661a91be Merge pull request #3217 from datauwu/7zip-simplify-bool-handling
7zip: simplify bool handling
2026-07-01 12:02:12 -05:00