summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-09-05 11:46:16 +0100
committerLeah Rowe <leah@libreboot.org>2025-09-05 11:46:16 +0100
commit5096e0040f3c231393fc8a2b2fa2d344de354158 (patch)
tree28ca062e802ab1f33a7f807cbe1cb6506b1bfe97 /mk
parentd06d6a190569574423ff5e60d27ee7f03208dd16 (diff)
mk: hardened PWD check (deny symlinks)
we check if the first argument is "./mk" and bail if not, which forces you to be in the xbmk work directory. however, this check is flawed because symlinks were still possible. this patch prevents a same-named symlink "mk" pointing to the real mk from being used. this hardening is necessary, due to several built-in assumptions inherent within the design of xbmk. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'mk')
-rwxr-xr-xmk5
1 files changed, 4 insertions, 1 deletions
diff --git a/mk b/mk
index 9dc743c5..cdcb03c8 100755
--- a/mk
+++ b/mk
@@ -5,7 +5,10 @@
set -u -e
-if [ "$0" != "./mk" ]; then
+ispwd="true"
+[ "$0" = "./mk" ] || ispwd="false"
+[ "$ispwd" = "true" ] && [ -L "mk" ] && ispwd="false"
+if [ "$ispwd" = "false" ]; then
printf "You must run this in the proper work directory.\n" 1>&2
exit 1
fi