[systemd-commits] fixme src/load-fragment.c

Lennart Poettering lennart at kemper.freedesktop.org
Mon Sep 27 11:32:08 PDT 2010


 fixme               |    2 --
 src/load-fragment.c |   12 +++++++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

New commits:
commit 6ccb1b44295edfbd4f7bc0211fe55ad765ef2af3
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Sep 27 20:31:23 2010 +0200

    load-fragment: reset fragment_path if we couldn't find a unit file for it

diff --git a/fixme b/fixme
index 89e279b..ec69ec5 100644
--- a/fixme
+++ b/fixme
@@ -109,8 +109,6 @@
 
 * (null) dependency bug
 
-* f21781d57f7e012c1d576dfd8c30b411014c5a88
-
 * d /var/run/screen 0755 root utmp
 
 External:
diff --git a/src/load-fragment.c b/src/load-fragment.c
index 74114c4..4395fb2 100644
--- a/src/load-fragment.c
+++ b/src/load-fragment.c
@@ -1846,10 +1846,20 @@ int unit_load_fragment(Unit *u) {
                 }
 
         /* And now, try looking for it under the suggested (originally linked) path */
-        if (u->meta.load_state == UNIT_STUB && u->meta.fragment_path)
+        if (u->meta.load_state == UNIT_STUB && u->meta.fragment_path) {
+
                 if ((r = load_from_path(u, u->meta.fragment_path)) < 0)
                         return r;
 
+                if (u->meta.load_state == UNIT_STUB) {
+                        /* Hmm, this didn't work? Then let's get rid
+                         * of the fragment path stored for us, so that
+                         * we don't point to an invalid location. */
+                        free(u->meta.fragment_path);
+                        u->meta.fragment_path = NULL;
+                }
+        }
+
         /* Look for a template */
         if (u->meta.load_state == UNIT_STUB && u->meta.instance) {
                 char *k;


More information about the systemd-commits mailing list