cpio: fix a bug where we do not extract zero-sized hardlinks

(spotted at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466771).
Add testsuite entry for that, and another one for another bug:
we do not list hardlinks in cpio -t (not fixed).

function                                             old     new   delta
get_header_cpio                                      884     909     +25
static.saved_hardlinks_created                         -       4      +4
static.pending_hardlinks                               4       -      -4
static.inode                                           4       -      -4
cpio_main                                           1122    1060     -62
This commit is contained in:
Denis Vlasenko
2008-04-05 02:44:30 +00:00
parent 1a95e3960c
commit 1af00eda92
7 changed files with 99 additions and 105 deletions

View File

@@ -20,7 +20,7 @@ void data_extract_all(archive_handle_t *archive_handle)
/* Check if the file already exists */
if (archive_handle->flags & ARCHIVE_EXTRACT_UNCONDITIONAL) {
/* Remove the existing entry if it exists */
/* Remove the entry if it exists */
if (((file_header->mode & S_IFMT) != S_IFDIR)
&& (unlink(file_header->name) == -1)
&& (errno != ENOENT)