#
584e1c35 |
|
03-Apr-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Ignore global extended headers. Previously, we would error out if we encountered a global extended header, because we don't know what it means. This doesn't really matter though, and traditionally, tar implementations have either ignored them or treated them as plain files, so just ignore them. This allows tarfs to mount tar files created by `git archive`. MFC after: 3 days Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D44600
|
#
b1fd95c9 |
|
03-Apr-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Support paths that spill into exthdrs. MFC after: 3 days Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D44599
|
#
32b8aac6 |
|
06-Mar-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Factor out common test code. MFC after: 3 days Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: allanjude Differential Revision: https://reviews.freebsd.org/D44227
|
#
0118b0c8 |
|
06-Mar-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Fix checksum calculation. The checksum code assumed that struct ustar_header filled an entire block and calculcated the checksum based on the size of the structure. The header is in fact only 500 bytes long while the checksum covers the entire block (“logical record” in POSIX terms). Add padding and an assertion, and clean up the checksum code. MFC after: 3 days Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D44226
|
#
38b36835 |
|
06-Mar-2024 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Fix two input validation issues. * Reject hard or soft links with an empty target path. Currently, a debugging kernel will hit an assertion in tarfs_lookup_path() while a non-debugging kernel will happily create a link to the mount root. * Use a temporary variable to store the result of the link target path, and copy it to tnp->other only once we have found it to be valid. Otherwise we error out after creating a reference to the target but before incrementing the target's reference count, which results in a use-after-free situation in the cleanup code. * Correctly return ENOENT from tarfs_lookup_path() if the requested path was not found and create_dirs is false. Luckily, existing callers did not rely solely on the return value. MFC after: 3 days PR: 277360 Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: sjg Differential Revision: https://reviews.freebsd.org/D44161
|
#
ef184e98 |
|
16-Mar-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Fix backtracking during node creation. Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D39082
|
#
e81d55b4 |
|
16-Mar-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Support tar files which include file modes with permissions. Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D39020
|
#
fd8c98a5 |
|
16-Mar-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Correctly track link count. Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D39019
|
#
6cb78fa4 |
|
16-Mar-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Repeat tests using GNU tar if available. Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: ngie, asomers Differential Revision: https://reviews.freebsd.org/D39018
|
#
b1218349 |
|
07-Mar-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Set mountedfrom correctly. Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: sjg, kib Differential Revision: https://reviews.freebsd.org/D38930
|
#
e78dc78e |
|
01-Mar-2023 |
Olivier Cochard <olivier@FreeBSD.org> |
testing: skip tarfs tests if module is not loadable. Approved by: asomers Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D38828
|
#
d481dcee |
|
20-Feb-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Really prevent descending into a non-directory. The previous fix was incorrect: we need to verify that the current node, if it exists, is not a directory, but we were checking the parent node instead. Address this, add more tests, and fix the test cleanup routines. PR: 269519, 269561 Fixes: ae6cff89738b Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D38645
|
#
ae6cff89 |
|
14-Feb-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
tarfs: Don't panic if the parent of a new node is not a directory. PR: 269519 Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D38587
|
#
69d94f4c |
|
02-Feb-2023 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add tarfs, a filesystem backed by tarballs. Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Reviewed by: pauamma, imp Differential Revision: https://reviews.freebsd.org/D37753
|