summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-11-14 20:12:51 +0100
committerLennart Poettering <lennart@poettering.net>2010-11-14 20:12:51 +0100
commit9c73736da85110ca73d141b5acff6f4989092c07 (patch)
tree05b4417d3047592b85c2af452236c4093cf9fe9c
parentf90cf44c02ac09469279126e2863a1e71358ee11 (diff)
downloadsystemd-9c73736da85110ca73d141b5acff6f4989092c07.tar.gz
tmpfiles: ignore files marked with the sticky bit
-rw-r--r--TODO2
-rw-r--r--src/tmpfiles.c7
2 files changed, 7 insertions, 2 deletions
diff --git a/TODO b/TODO
index cb1296950e..ca39210f10 100644
--- a/TODO
+++ b/TODO
@@ -78,8 +78,6 @@
* in the PAM module rely on loginuid to figure out XDG_RUNTIME_DIR
-* tmpfiles: skip sticky files and after wallclock time change
-
Pre v12:
* fsck-root.service/start gets queued twice
diff --git a/src/tmpfiles.c b/src/tmpfiles.c
index 1ad5a01eab..120236c5cc 100644
--- a/src/tmpfiles.c
+++ b/src/tmpfiles.c
@@ -182,6 +182,13 @@ static int dir_cleanup(
}
} else {
+ /* Skip files for which the sticky bit is
+ * set. These are semantics we define, and are
+ * unknown elsewhere. See XDG_RUNTIME_DIR
+ * specification for details. */
+ if (s.st_mode & S_ISVTX)
+ continue;
+
if (mountpoint) {
if (streq(dent->d_name, ".journal") &&
s.st_uid == 0)