diff options
author | Leah Rowe <leah@libreboot.org> | 2025-04-17 23:43:22 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2025-04-17 23:43:22 +0100 |
commit | e07a2adb130e86cf78fc1ee77a4d8b233a65cedf (patch) | |
tree | 322fef83ab84abebe14c05b3b4f9be9b7912f0c9 /include | |
parent | 9d3b52cd1d2c91912476ac4622ef33726e349e54 (diff) |
lbmk: don't handle TMPDIR directly
lbmk creates TMPDIR as /tmp/xbmk_*, but it's theoretically
possible that something could re-export it by mistake.
this change retains the same initialisation, but further
use is now via a new variable "xbmktmp", that stores the
value of TMPDIR upon lbmk's initialisation of it.
this reduces the chance of such a bug in the future, as
described above, so it is a preemptive/preventative fix.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/lib.sh | 4 | ||||
-rw-r--r-- | include/rom.sh | 11 | ||||
-rw-r--r-- | include/vendor.sh | 6 |
3 files changed, 12 insertions, 9 deletions
diff --git a/include/lib.sh b/include/lib.sh index e0c9b1a2..8de19d2a 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -50,7 +50,7 @@ chkvars() } eval "`setvars "" _nogit board reinstall versiondate aur_notice configdir \ - datadir version relname`" + datadir version relname xbmktmp`" for fv in version versiondate; do eval "[ ! -f \".$fv\" ] || read -r $fv < \".$fv\" || :" @@ -127,6 +127,7 @@ if [ -z "${TMPDIR+x}" ]; then [ -f "lock" ] && $err "$xbmkpwd/lock exists. Is a build running?" export TMPDIR="/tmp" export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)" + xbmktmp="$TMPDIR" touch lock || $err "cannot create 'lock' file" x_ rm -Rf "$XBMK_CACHE/xbmkpath" "$XBMK_CACHE/gnupath" x_ mkdir -p "$XBMK_CACHE/gnupath" "$XBMK_CACHE/xbmkpath" @@ -144,6 +145,7 @@ if [ -z "${TMPDIR+x}" ]; then rm -f lock || xbmk_rval=1 exit $xbmk_rval fi +xbmktmp="$TMPDIR" # if "y": a coreboot target won't be built if target.cfg says release="n" # (this is used to exclude certain build targets from releases) diff --git a/include/rom.sh b/include/rom.sh index 4ec473e5..710df853 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -12,7 +12,8 @@ mkserprog() [ "$1" = "pico" ] && mkpicotool - basename -as .h "$serdir/"*.h > "$TMPDIR/ser" || $err "!mk $1 $TMPDIR" + basename -as .h "$serdir/"*.h > "$xbmktmp/ser" || \ + $err "!mk $1 $xbmktmp" while read -r sertarget; do [ "$1" = "pico" ] && @@ -31,7 +32,7 @@ mkserprog() "$sersrc" BOARD=$sertarget x_ mkdir -p "bin/serprog_$1" x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}" - done < "$TMPDIR/ser" + done < "$xbmktmp/ser" [ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; : } @@ -115,7 +116,7 @@ mkcorebootbin() { [ "$target" = "$tree" ] && return 0 - tmprom="$TMPDIR/coreboot.rom" + tmprom="$xbmktmp/coreboot.rom" $dry x_ cp "$srcdir/build/coreboot.rom" "$tmprom" initmode="${defconfig##*/}" @@ -201,8 +202,8 @@ add_grub() _grubname="fallback/payload" cbfs "$tmprom" "$grubelf" "$_grubname" printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \ - > "$TMPDIR/tmpcfg" || $err "$target: !insert scandisk" - cbfs "$tmprom" "$TMPDIR/tmpcfg" scan.cfg raw + > "$xbmktmp/tmpcfg" || $err "$target: !insert scandisk" + cbfs "$tmprom" "$xbmktmp/tmpcfg" scan.cfg raw [ "$initmode" != "normal" ] && [ "$displaymode" != "txtmode" ] && \ cbfs "$tmprom" "$grubdata/background/background1280x800.png" \ "background.png" raw; : diff --git a/include/vendor.sh b/include/vendor.sh index 239b0e52..a761cfaa 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -48,11 +48,11 @@ vendor_download() readkconfig() { - x_ rm -f "$TMPDIR/cbcfg" + x_ rm -f "$xbmktmp/cbcfg" cbcfg="`check_defconfig "$boarddir"`" || for cbc in $cv; do - grep "$cbc" "$cbcfg" 1>>"$TMPDIR/cbcfg" 2>/dev/null || : + grep "$cbc" "$cbcfg" 1>>"$xbmktmp/cbcfg" 2>/dev/null || : done - eval "`setcfg "$TMPDIR/cbcfg" 1`" + eval "`setcfg "$xbmktmp/cbcfg" 1`" for c in $cvchk; do eval "[ \"\${$c}\" = \"/dev/null\" ] && continue" |