]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
namespace: fix wrong return value from mount(2) (#3758)
authorTopi Miettinen <topimiettinen@users.noreply.github.com>
Wed, 20 Jul 2016 14:43:21 +0000 (14:43 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Wed, 20 Jul 2016 14:43:21 +0000 (17:43 +0300)
Fix bug introduced by #3263: mount(2) return value is 0 or -1, not errno.

Thanks to Evgeny Vereshchagin (@evverx) for reporting.

src/core/namespace.c

index 8df82c031c1111642a8827615b1c5bfbf010c38d..4baf4750f46e2a1d4b0d8fdeab0815bc35e9af3d 100644 (file)
@@ -347,7 +347,8 @@ static int make_read_only(BindMount *m) {
         else if (IN_SET(m->mode, READWRITE, PRIVATE_TMP, PRIVATE_VAR_TMP, PRIVATE_DEV)) {
                 r = bind_remount_recursive(m->path, false);
                 if (r == 0 && m->mode == PRIVATE_DEV) /* can be readonly but the submounts can't*/
-                        r = mount(NULL, m->path, NULL, MS_REMOUNT|DEV_MOUNT_OPTIONS|MS_RDONLY, NULL);
+                        if (mount(NULL, m->path, NULL, MS_REMOUNT|DEV_MOUNT_OPTIONS|MS_RDONLY, NULL) < 0)
+                                r = -errno;
         } else
                 r = 0;