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

@@ -9,11 +9,9 @@
void seek_by_jump(const archive_handle_t *archive_handle, unsigned amount)
{
if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
#if ENABLE_FEATURE_UNARCHIVE_TAPE
if (errno == ESPIPE) {
if (errno == ESPIPE)
seek_by_read(archive_handle, amount);
} else
#endif
else
bb_perror_msg_and_die("seek failure");
}
}