[git commit] examples/udhcp/simple.script: fix resolv.conf update if it is a dangling symlink

Denys Vlasenko vda.linux at googlemail.com
Sat Apr 13 14:58:00 UTC 2019


commit: https://git.busybox.net/busybox/commit/?id=7180d9ed863e6ea350938b13384548f4f2617528
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

If /etc/resolv.conf is a symlink to a tmpfs and the actual file does not
already exist, "readlink -f" will not detect it as symlink. Explicitely check
for that condition before and touch the file, making the other code work as
intended.

Signed-off-by: Rolf Eike Beer <eb at emlix.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 examples/udhcp/simple.script | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/examples/udhcp/simple.script b/examples/udhcp/simple.script
index 44aa46ece..53974e6d6 100755
--- a/examples/udhcp/simple.script
+++ b/examples/udhcp/simple.script
@@ -55,6 +55,10 @@ case "$1" in
 		echo "Recreating $RESOLV_CONF"
 		# If the file is a symlink somewhere (like /etc/resolv.conf
 		# pointing to /run/resolv.conf), make sure things work.
+		if test -L "$RESOLV_CONF"; then
+			# If it's a dangling symlink, try to create the target.
+			test -e "$RESOLV_CONF" || touch "$RESOLV_CONF"
+		fi
 		realconf=$(readlink -f "$RESOLV_CONF" 2>/dev/null || echo "$RESOLV_CONF")
 		tmpfile="$realconf-$$"
 		> "$tmpfile"


More information about the busybox-cvs mailing list