Bug 6680

Summary: cpio does not understand hardlinks in archives
Product: Busybox Reporter: Michael Tokarev <mjt+busybox>
Component: Standard ComplianceAssignee: unassigned
Status: NEW ---    
Severity: normal CC: busybox-cvs
Priority: P5    
Version: 1.21.x   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:

Description Michael Tokarev 2013-11-10 13:37:09 UTC
When running testsuite, one of the "known-buggy" testcases fails:

 FAIL: cpio lists hardlinks

but the reason why it fails is not due to difference between "1 block" vs "1 blocks" output as stated in the test, but because of an actual bug:

echo -ne '' | echo -ne '\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x64\x1e\x91\x8c\x00\x00\x48\x7f\x80\x4c\x48\x08\x00\x28\x01\xff\xe0\x3f\x24\x14\x00\x0e\x20\xdc\x60\x20\x00\x92\x11\xea\xa0\x1a\x00\x00\x00\x03\x20\x8a\x93\xd4\x9a\x68\x1a\x0d\x1e\x91\xa1\xa0\x06\x98\xe3\x5c\x2f\xd9\x26\xa1\x25\x24\x20\xed\x47\xc7\x21\x40\x2b\x6e\xf2\xe6\xfe\x98\x13\x68\xa8\xbd\x82\xb2\x4f\x26\x02\x24\x16\x5b\x22\x16\x72\x74\x15\xcd\xc1\xa6\x9e\xa6\x5e\x6c\x16\x37\x35\x01\x99\xc4\x81\x21\x29\x28\x4b\x69\x51\xa9\x3c\x1a\x9b\x0a\xe1\xe4\xb4\xaf\x85\x73\xba\x23\x10\x59\xe8\xb3\xe1\xa1\x63\x05\x8c\x4f\xc5\xdc\x91\x4e\x14\x24\x19\x07\xa4\x63\x00' | bzcat | cpio -t 2>&1; echo $?
FAIL: cpio lists hardlinks
--- expected
+++ actual
@@ -1,5 +1,3 @@
-cpio.testdir
-cpio.testdir/x
-cpio.testdir/y
 1 blocks
+cpio.testdir
 0

So, busybox cpio only displays the first entry from this cpio archive, while there are 2 more entries exists!

The good news is that those entries are actually processed, just not printed (including -idv mode -- busybox cpio actually extracts the files, but does not display their names).

But still marking this issue as "normal" severity not "minor", even this is only display issue: it costed me almost a heart attack when I thought some files weren't extracted... :)

Thanks,