From 734a0d9ebc35be478fe15fc9a8d59bc6e16efdb5 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Thu, 19 Nov 2009 15:46:09 +0100 Subject: [PATCH] dracut: check more return codes, check for permissions and use derror --- dracut | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/dracut b/dracut index 7227f8c7..96b03533 100755 --- a/dracut +++ b/dracut @@ -174,9 +174,16 @@ if [[ -f $outfile && ! $force ]]; then exit 1 fi +if ! [[ -w $(dirname $outfile) ]]; then + echo "No permission to write $outfile." + exit 1 +fi + hookdirs="cmdline pre-udev pre-trigger netroot pre-mount pre-pivot mount emergency" +[[ -n "$TMPDIR" ]] && ! [[ -w "$TMPDIR" ]] && unset TMPDIR readonly initdir=$(mktemp -d -t initramfs.XXXXXX) + trap 'ret=$?;rm -rf "$initdir";exit $ret;' EXIT # clean up after ourselves no matter how we die. trap 'exit 1;' SIGINT # clean up after ourselves no matter how we die. @@ -220,7 +227,7 @@ unset moddir # generate module dependencies for the initrd if [[ -d $initdir/lib/modules/$kernel ]]; then if ! depmod -a -b "$initdir" $kernel; then - echo "\"depmod -a $kernel\" failed." + derror "\"depmod -a $kernel\" failed." exit 1 fi fi @@ -269,7 +276,11 @@ if [[ $do_strip = yes ]] ; then done fi -( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet |gzip -9 > "$outfile"; ) +( cd "$initdir"; find . |cpio -R 0:0 -H newc -o --quiet |gzip -9 > "$outfile"; ) +if [ $? -ne 0 ]; then + derror "dracut: creation of $outfile failed" + exit 1 +fi [[ $beverbose = yes ]] && ls -lh "$outfile"