[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#598427:



This bug also affects current version in unstable.
If you choose a base-unexistent path in crosshurd,
which subsequently will be passed to makehurddir.sh,
makehurddir.sh will call readlink -f,
which may return an empty string in some cases,
thus $TARGET will be "", so commands like:

 cp /etc/resolv.conf "$TARGET/etc/resolv.conf"

will end up overwriting some of root filesystem's files.

Do not try this as root !!!

Here is a possible patch for makehurddir.sh:

----------------
--- a/makehurddir.sh	2016-02-21 23:28:54.000000000 +0100
+++ b/makehurddir.sh	2016-05-18 17:07:46.578718033 +0200
@@ -10,6 +10,11 @@
 DEB_TARGET_GNU_CPU=$2
 DEB_TARGET_GNU_SYSTEM=$3

+if [ x"$TARGET" = x ]; then
+  echo "Refused to overwrite inexistent/empty TARGET."
+  exit 1
+fi
+
 . /usr/share/crosshurd/functions

 debs=`cat /etc/crosshurd/packages/{common,$DEB_TARGET_GNU_SYSTEM} |
grep -v '^#'`
----------------


Reply to: