mount: propagate error codes correctly
authorDavid Herrmann <dh.herrmann@gmail.com>
Mon, 21 Sep 2015 17:59:07 +0000 (19:59 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Mon, 21 Sep 2015 18:03:24 +0000 (20:03 +0200)
Make sure to propagate error codes from mount-loops correctly. Right now,
we return the return-code of the first mount that did _something_. This is
not what we want. Make sure we return an error if _any_ mount fails (and
then make sure to return the first error to not hide proper errors due to
consequential errors like -ENOTDIR).

Reported by cee1 <fykcee1@gmail.com>.

src/core/mount-setup.c

index 65f3d06..9b16eaa 100644 (file)
@@ -208,7 +208,7 @@ int mount_setup_early(void) {
                 int j;
 
                 j = mount_one(mount_table + i, false);
-                if (r == 0)
+                if (j != 0 && r >= 0)
                         r = j;
         }
 
@@ -351,7 +351,7 @@ int mount_setup(bool loaded_policy) {
                 int j;
 
                 j = mount_one(mount_table + i, loaded_policy);
-                if (r == 0)
+                if (j != 0 && r >= 0)
                         r = j;
         }