[klibc] Re: [PATCH] initramfs: CPIO unpacking fix

Jeff Garzik jeff at garzik.org
Tue Mar 21 23:14:04 PST 2006


Michael Neuling wrote:
> Unlink files, symlinks, FIFOs, devices etc. (except directories) before
> writing them when extracting CPIOs.  This stops weird behaviour like:
>  1) writing through symlinks created in earlier CPIOs. eg foo->bar in
>     the first CPIO.  Having foo as a non-link in a subsequent CPIO,
>     results in bar being written and foo remaining as a symlink.  
>  2) if the first version of file foo is larger than foo in a
>     subsequent CPIO, we end up with a mix of the two.  ie. neither
>     the first or second version of /foo.
>  3) special files like devices, fifo etc. can't be overwritten in
>     subsequent CPIOS.
> 
> With this, the kernel will more closely replicate
>   for i in *.cpio; do cpio --extract --unconditional < $i ; done
> 
> This is a change but it's regarded as fixing broken functionality.
> 
> Signed-off-by: Michael Neuling <mikey at neuling.org>

For the kernel, I would regard that as needless code...  Coding for a 
chain of CPIO archives overwriting each other seems like overengineering.

	Jeff





More information about the klibc mailing list