]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
dracut.sh: support --tmpdir as a relative path 157/head
authorDavid Disseldorp <ddiss@suse.de>
Mon, 10 Oct 2016 14:27:47 +0000 (16:27 +0200)
committerDavid Disseldorp <ddiss@suse.de>
Mon, 10 Oct 2016 14:27:47 +0000 (16:27 +0200)
Dracut changes working directory before attempting to output files under
$DRACUT_TMPDIR , resulting in an IO failure if $DRACUT_TMPDIR is a path
relative to the working directory when dracut was started.

Fixes: https://github.com/dracutdevs/dracut/issues/156
Signed-off-by: David Disseldorp <ddiss@suse.de>
dracut.sh

index 40ca08f659f2289a608ac8e333d4cd818f8d7e76..a30e8d9de541040914804f29f047ec3a4b020b0b 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -820,7 +820,11 @@ esac
 
 [[ $reproducible == yes ]] && DRACUT_REPRODUCIBLE=1
 
-readonly TMPDIR="$tmpdir"
+readonly TMPDIR="$(realpath -e "$tmpdir")"
+[ -d "$TMPDIR" ] || {
+    printf "%s\n" "dracut: Invalid tmpdir '$tmpdir'." >&2
+    exit 1
+}
 readonly DRACUT_TMPDIR="$(mktemp -p "$TMPDIR/" -d -t dracut.XXXXXX)"
 [ -d "$DRACUT_TMPDIR" ] || {
     printf "%s\n" "dracut: mktemp -p '$TMPDIR/' -d -t dracut.XXXXXX failed." >&2