[systemd-commits] src/tmpfiles

Tom Gundersen tomegun at kemper.freedesktop.org
Fri Sep 26 08:39:28 PDT 2014


 src/tmpfiles/tmpfiles.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 9ed2a35e93f4a9e82585f860f54cdcbbdf3e1f86
Author: Richard Weinberger <richard at nod.at>
Date:   Tue Sep 9 11:09:37 2014 +0200

    systemd-tmpfiles: Fix IGNORE_DIRECTORY_PATH age handling
    
    If one has a config like:
    d /tmp 1777 root root -
    X /tmp/important_mount
    
    All files below /tmp/important_mount will be deleted as the
    /tmp/important_mount item will spuriously inherit a max age of 0
    from /tmp.
    /tmp has a max age of 0 but age_set is (of course) false.
    
    This affects also the PrivateTmp feature of systemd.
    All tmp files of such services will be deleted unconditionally
    and can cause service failures and data loss.
    
    Fix this by checking ->age_set in the IGNORE_DIRECTORY_PATH logic.

diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index f9830c4..7eafd6b 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -1576,7 +1576,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) {
                                 candidate_item = j;
                 }
 
-                if (candidate_item) {
+                if (candidate_item && candidate_item->age_set) {
                         i->age = candidate_item->age;
                         i->age_set = true;
                 }



More information about the systemd-commits mailing list