Paul Eggert
9447e799ab
tar: use more-accurate diagnostic when intermediate mkdir fails
...
Without this change, if tar tried to extract a file A/B/C, noticed
that A/B didn't exist, attempted to mkdir A/B, and the mkdir
failed, it did not diagnose the mkdir failure, but simply reported
the failure to open A/B/C. This sometimes led to confusion
because it wasn't clear what tar was trying to do, in particular
that tar tried to mkdir A/B. With this patch, tar issues two
diagnostics in this case: one for A/B and the other for A/B/C.
Problem reported by Hauke Laging in
<http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00020.html >.
* gnulib.modules: Remove faccessat.
* src/extract.c (make_directories): New arg INTERDIR_MADE.
Diagnose mkdir failure. Return 0 on success, nonzero on failure,
as opposed to nonzero iff some directory was created. All callers
changed. Simplify the code when mkdir fails, by checking whether
the desired file exists unless errno==EEXIST: this is more robust.
* tests/extrac15.at: New test, to check this.
* tests/Makefile.am (TESTSUITE_AT): Add it.
* tests/testsuite.at: Include it.
2010-10-15 22:26:43 -07:00
..
2010-08-19 15:50:07 -07:00
2009-03-07 16:30:44 +02:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2007-06-27 13:30:12 +00:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2010-08-19 15:50:07 -07:00
2007-06-27 13:30:12 +00:00
2008-06-26 06:32:25 +00:00
2009-08-12 19:25:29 +03:00
2009-08-12 19:25:29 +03:00
2009-08-12 19:25:29 +03:00
2009-08-12 19:25:29 +03:00
2010-03-02 18:39:40 +02:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2007-06-27 13:30:12 +00:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-08-26 10:23:06 -07:00
2010-10-15 21:53:37 -07:00
2010-08-26 10:23:06 -07:00
2010-08-25 17:09:59 -07:00
2010-09-12 14:27:13 -07:00
2010-09-17 12:28:25 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 22:26:43 -07:00
2010-08-19 15:50:07 -07:00
2010-09-06 13:39:21 -07:00
2009-08-08 19:53:54 +03:00
2010-04-01 00:03:51 +03:00
2008-06-26 06:32:25 +00:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2009-08-07 14:52:55 +03:00
2009-08-13 16:45:49 +03:00
2010-08-19 15:50:07 -07:00
2008-07-31 07:12:50 +00:00
2007-06-27 13:30:12 +00:00
2010-01-24 15:52:22 +02:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-24 08:18:37 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-26 10:23:06 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2008-06-26 06:32:25 +00:00
2008-06-26 06:32:25 +00:00
2007-06-27 13:30:12 +00:00
2010-10-15 22:26:43 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2007-06-27 13:30:12 +00:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2007-06-27 13:30:12 +00:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2007-06-27 13:30:12 +00:00
2010-03-20 13:20:30 +02:00
2009-10-14 17:55:15 +03:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2009-05-25 10:18:59 +03:00
2010-08-19 15:50:07 -07:00
2010-03-20 13:20:30 +02:00
2010-10-15 21:53:37 -07:00
2010-08-19 15:50:07 -07:00
2007-06-27 13:30:12 +00:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-07-11 22:57:17 +03:00
2007-06-27 13:30:12 +00:00
2010-07-11 22:57:17 +03:00
2007-06-27 13:30:12 +00:00
2007-10-04 07:16:39 +00:00
2010-10-15 22:26:43 -07:00
2009-08-08 19:53:54 +03:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2009-10-14 23:26:52 +03:00
2007-06-27 13:30:12 +00:00
2007-06-27 13:30:12 +00:00
2010-08-19 15:50:07 -07:00
2010-08-19 15:50:07 -07:00
2010-08-25 10:54:45 +03:00
2010-08-25 10:54:45 +03:00