[systemd-devel] [PATCH] system-update-generator: accept a dangling symlink

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Sun Jan 25 22:34:32 PST 2015


The offline update mechanism is explicitly designed to work with a
separate /var. systemd-update-generator is supposed to run early,
before filesystems are mounted, so it cannot check if the
/system-update symlink actually points to anything.

The update is run *after* filesystems are mounted, so it should be
able to access the target of the symlink without trouble.

https://bugzilla.redhat.com/show_bug.cgi?id=1178978
---
 src/system-update-generator/system-update-generator.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/system-update-generator/system-update-generator.c b/src/system-update-generator/system-update-generator.c
index 464ee22b20..a8adbcb793 100644
--- a/src/system-update-generator/system-update-generator.c
+++ b/src/system-update-generator/system-update-generator.c
@@ -37,7 +37,7 @@ static const char *arg_dest = "/tmp";
 static int generate_symlink(void) {
         const char *p = NULL;
 
-        if (access("/system-update", F_OK) < 0) {
+        if (faccessat(AT_FDCWD, "/system-update", F_OK, AT_SYMLINK_NOFOLLOW) < 0) {
                 if (errno == ENOENT)
                         return 0;
 
-- 
2.1.1



More information about the systemd-devel mailing list