Linus Torvalds wrote:
On Wed, 31 Jan 2007, H. Peter Anvin wrote:It would be interesting to know what the inode numbers are in the image; also,
what is the exact behaviour -- do you end up with a missing link, or do both
entries end up getting hard-linked to an empty file?
Judging by the
request_module: runaway loop modprobe binfmt-0000
one or more of the hardlinked binaries (modprobe being one, but not necessarily the one that initially triggers hits) will read all zeroes-
Or at least bytes at offsets 2 and 3 will read as zero, causing it to not be recognized as a proper binary, causing that "binfmt-0000" thing.
Or perhaps not read at all, which would explain the problem.
cpio represents a hard link as who headers with the same type and the same file (inode) number and a link count that is > 1. Only the first one contains data; the subsequent ones have length 0. It's fairly easy for a bug in the decoder to truncate the file upon encountering the second header, since this is somewhat of a special case (it would have been better if the cpio format distinguished "hard link" explicitly, as tar does.)
I will look into this as soon as I can, but as I'm currently in the middle of job hunting it might take until the weekend.