jail: don't use NULL arguments for mount syscall
authorDaniel Golle <daniel@makrotopia.org>
Thu, 26 Nov 2020 00:55:20 +0000 (00:55 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Fri, 27 Nov 2020 01:06:09 +0000 (01:06 +0000)
Make valgrind more happy

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
jail/fs.c
jail/jail.c

index d3046aa7d6ff7e52e11c7d927fddaeb342d98437..42019734569781bf5a225433a73655e2ab68fa5b 100644 (file)
--- a/jail/fs.c
+++ b/jail/fs.c
@@ -111,10 +111,10 @@ static int do_mount(const char *root, const char *orig_source, const char *targe
                                return error;
                } else {
                        /* mount-bind 0-sized file having mode 000 */
-                       if (mount(UJAIL_NOAFILE, new, NULL, MS_BIND, NULL))
+                       if (mount(UJAIL_NOAFILE, new, "bind", MS_BIND, NULL))
                                return error;
 
-                       if (mount(UJAIL_NOAFILE, new, NULL, MS_REMOUNT | MS_BIND | MS_RDONLY | MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_NOATIME, NULL))
+                       if (mount(UJAIL_NOAFILE, new, "bind", MS_REMOUNT | MS_BIND | MS_RDONLY | MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_NOATIME, NULL))
                                return error;
                }
 
@@ -137,7 +137,7 @@ static int do_mount(const char *root, const char *orig_source, const char *targe
        }
 
        if (is_bind) {
-               if (mount(source?:new, new, filesystemtype, MS_BIND | (mountflags & MS_REC), optstr)) {
+               if (mount(source?:new, new, filesystemtype?:"bind", MS_BIND | (mountflags & MS_REC), optstr)) {
                        if (error)
                                ERROR("failed to mount -B %s %s: %m\n", source, new);
 
@@ -150,7 +150,7 @@ static int do_mount(const char *root, const char *orig_source, const char *targe
        }
 
        const char *hack_fstype = ((!filesystemtype || strcmp(filesystemtype, "cgroup"))?filesystemtype:"cgroup2");
-       if (mount(source?:(is_bind?new:NULL), new, hack_fstype, mountflags, optstr)) {
+       if (mount(source?:(is_bind?new:NULL), new, hack_fstype?:"none", mountflags, optstr)) {
                if (error)
                        ERROR("failed to mount %s %s: %m\n", source, new);
 
@@ -163,7 +163,7 @@ static int do_mount(const char *root, const char *orig_source, const char *targe
        DEBUG("mount %s%s %s (%s)\n", (mountflags & MS_BIND)?"-B ":"", source, new,
              (mountflags & MS_RDONLY)?"ro":"rw");
 
-       if (propflags && mount(NULL, new, NULL, propflags, NULL)) {
+       if (propflags && mount("none", new, "none", propflags, NULL)) {
                if (error)
                        ERROR("failed to mount --make-... %s \n", new);
 
index 5f1ca6fa2d6e1c63ce8ffb9da0984531ceed2c54..34fec71a31b481e55207ead416c9450376ea42b5 100644 (file)
@@ -389,7 +389,7 @@ static int create_dev_console(const char *jail_root)
        snprintf(dev_console_path, sizeof(dev_console_path), "%s/dev/console", jail_root);
        close(creat(dev_console_path, 0620));
 
-       if (mount(console_fname, dev_console_path, NULL, MS_BIND, NULL))
+       if (mount(console_fname, dev_console_path, "bind", MS_BIND, NULL))
                goto no_console;
 
        /* use PTY slave for stdio */
@@ -641,13 +641,13 @@ static int build_jail_fs(void)
        }
 
        /* oldroot can't be MS_SHARED else pivot_root() fails */
-       if (mount("none", "/", NULL, MS_REC|MS_PRIVATE, NULL)) {
+       if (mount("none", "/", "none", MS_REC|MS_PRIVATE, NULL)) {
                ERROR("private mount failed %m\n");
                return -1;
        }
 
        if (opts.extroot) {
-               if (mount(opts.extroot, jail_root, NULL, MS_BIND, NULL)) {
+               if (mount(opts.extroot, jail_root, "bind", MS_BIND, NULL)) {
                        ERROR("extroot mount failed %m\n");
                        return -1;
                }
@@ -761,7 +761,7 @@ static void enter_jail_fs(void)
                free_and_exit(-1);
        }
        if (opts.ronly)
-               mount(NULL, "/", NULL, MS_REMOUNT | MS_BIND | MS_RDONLY, 0);
+               mount(NULL, "/", "bind", MS_REMOUNT | MS_BIND | MS_RDONLY, 0);
 
        umask(old_umask);
        post_jail_fs();