chiark / gitweb /
core: do not overwrite existing units source
authorUmut Tezduyar <umut@tezduyar.com>
Thu, 7 Feb 2013 08:06:20 +0000 (09:06 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 14 Feb 2013 20:26:34 +0000 (15:26 -0500)
Only set source for freshly created .mounts coming from
mountinfo file.

src/core/mount.c

index 2aaf78ceae91b631ac3197dcd3fa7db1f4a60143..e3d298eb961a448ce13189d87615af99f861d5e6 100644 (file)
@@ -1440,7 +1440,7 @@ static int mount_add_one(
         int r;
         Unit *u;
         bool delete;
-        char *e, *w = NULL, *o = NULL, *s = NULL, *f = NULL;
+        char *e, *w = NULL, *o = NULL, *f = NULL;
         MountParameters *p;
         bool load_extras = false;
 
@@ -1488,6 +1488,12 @@ static int mount_add_one(
                         goto fail;
                 }
 
+                u->source_path = strdup("/proc/self/mountinfo");
+                if (!u->source_path) {
+                        r = -ENOMEM;
+                        goto fail;
+                }
+
                 unit_add_to_load_queue(u);
         } else {
                 delete = false;
@@ -1513,7 +1519,6 @@ static int mount_add_one(
 
         if (!(w = strdup(what)) ||
             !(o = strdup(options)) ||
-            !(s = strdup("/proc/self/mountinfo")) ||
             !(f = strdup(fstype))) {
                 r = -ENOMEM;
                 goto fail;
@@ -1527,8 +1532,6 @@ static int mount_add_one(
         }
 
         MOUNT(u)->from_proc_self_mountinfo = true;
-        free(u->source_path);
-        u->source_path = s;
 
         free(p->what);
         p->what = w;
@@ -1554,7 +1557,6 @@ static int mount_add_one(
 fail:
         free(w);
         free(o);
-        free(s);
         free(f);
 
         if (delete && u)