tCheck no mounts prior to 'sudo rm -rf' (zlibs/{helpers,bootstrap}) - libdevuansdk - common library for devuan's simple distro kits
HTML git clone https://git.parazyd.org/libdevuansdk
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit 25a86b7428eabe0ab7f3a45daa76ff84a07af450
DIR parent 3cffb94e5cc47210ccb9177052e8b6c71d2c8cbb
HTML Author: gryrmln <gryrmln@localhost>
Date: Fri, 2 Apr 2021 12:00:46 +0100
Check no mounts prior to 'sudo rm -rf' (zlibs/{helpers,bootstrap})
Signed-off-by: gryrmln <gryrmln@localhost>
Diffstat:
M zlibs/bootstrap | 12 +++++++++++-
M zlibs/helpers | 8 ++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
---
DIR diff --git a/zlibs/bootstrap b/zlibs/bootstrap
t@@ -246,7 +246,17 @@ bootstrap_cpio_unpack()
notice "Unpacking bootstrap cpio archive: $_bootstrap_cpio"
silly
- sudo rm -rf "${strapdir}"/*
+ # Danger Will Robinson
+ # Check for (bind) mounts as sudo rm -rf will trash the host
+ for m in sys proc dev; do
+ if [[ $(mountpoint -q "${strapdir}/$m") ]]; then
+ zerr
+ return 1
+ fi
+ done
+ # remove everything, including .dotdirfiles
+ sudo rm -rf "$strapdir"
+ mkdir -p "$strapdir"
pushd "$strapdir" || { zerr; return 1; }
zcat "$_bootstrap_cpio" | sudo cpio -idmn --format=newc || { zerr; return 1; }
DIR diff --git a/zlibs/helpers b/zlibs/helpers
t@@ -113,6 +113,14 @@ clean_strapdir()
notice "Cleaning strapdir"
+ # Danger Will Robinson
+ # Check for (bind) mounts as sudo rm -rf will trash the host
+ for m in sys proc dev; do
+ if [[ $(mountpoint -q "${strapdir}/$m") ]]; then
+ zerr
+ return 1
+ fi
+ done
sudo rm -rf "$strapdir"
}