From: Daan De Meyer Date: Mon, 24 Apr 2023 09:54:50 +0000 (+0200) Subject: nspawn: Don't follow /etc/resolv.conf symlinks X-Git-Tag: v254-rc1~657 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d404c8d887dfdd06c91409d06b695f2c502e4a41;p=thirdparty%2Fsystemd.git nspawn: Don't follow /etc/resolv.conf symlinks When we're checking if /etc/resolv.conf exists so we can bind mount on top of it, we care about whether the symlink itself exists if /etc/resolv.conf exists and not the file it points to, so add CHASE_NOFOLLOW to make sure we check existence of the symlink and not the file it points to. --- diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 6477cc43fa9..9e5b7772ac2 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -2159,7 +2159,7 @@ static int setup_resolv_conf(const char *dest) { _cleanup_free_ char *resolved = NULL; int found; - found = chase(where, dest, CHASE_NONEXISTENT, &resolved, NULL); + found = chase(where, dest, CHASE_NONEXISTENT|CHASE_NOFOLLOW, &resolved, NULL); if (found < 0) { log_warning_errno(found, "Failed to resolve /etc/resolv.conf path in container, ignoring: %m"); return 0;