[arch-projects] [mkinitcpio] overwrite files/symlinks
Dave Reisner
d at falconindy.com
Wed Jul 18 13:10:10 EDT 2012
On Wed, Jul 18, 2012 at 07:03:44PM +0200, Christian Hesse wrote:
> Hello everybody,
>
> I added a hook to the initramfs whose install script added 'uname' by using
> add_binary. This resulted in major breakage and a kernel panicing on boot.
>
> I suppose this is because there is a symlink from uname to busybox - with
> adding uname I killed the busybox binary. Is this ok by design or do we want
> to raise an error if something like this happens?
>
> I created a patch (see attachment). Does this make sense?
Nope, it doesn't make sense. We overwrite a busybox symlink in the
shutdown hook (cp, since we need the -a flag), and this isn't a problem.
> --
> main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
> "CX:;",b;for(a/* Chris get my mail address: */=0;b=c[a++];)
> putchar(b-1/(/* gcc -o sig sig.c && ./sig */b/42*2-3)*42);}
> diff --git a/functions b/functions
> index e17e46e..364bbb2 100644
> --- a/functions
> +++ b/functions
> @@ -437,6 +437,11 @@ add_file() {
> return 1
> fi
>
> + if [[ -L "$dest" ]]; then
> + error "destination is a symbolic link: \`%s'" "$dest"
> + exit 1
> + fi
> +
> mode=${3:-$(stat -c %a "$src")}
> if [[ -z $mode ]]; then
> error "failed to stat file: \`%s'." "$src"
More information about the arch-projects
mailing list