cvs commit: src/lib/libarchive archive_read_extract.c
Tim Kientzle
kientzle at FreeBSD.org
Wed Jul 7 22:24:48 PDT 2004
kientzle 2004-07-08 05:24:48 UTC
FreeBSD src repository
Modified files:
lib/libarchive archive_read_extract.c
Log:
I think this is my fourth complete rewrite of the dir-creation
code. <whew!> This version handles all of the following edge cases:
* Restoring explicit dirs with 000 permissions (star fails this test)
* Restore of implicit or explicit dirs when umask=777
(gtar and star both fail this test)
* Restoring dir paths containing "." and ".." components
This version initially creates all dirs with permission 700 (ignoring
umask), then does a post-extract "fixup" pass to set the correct
permissions (which may or may not depend on umask, depending on the
restore flags and whether it's an explicit or implicit dir).
Permissions are restored depth-first so that permissions within
non-writable dirs can be correctly restored. (The depth-sorting does
correctly account for dirs with ".." components.)
Revision Changes Path
1.29 +212 -138 src/lib/libarchive/archive_read_extract.c
More information about the cvs-all
mailing list