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