mount: apply SELinux labels before overlayfs mount
[project/fstools.git] / libfstools / overlay.c
index 39215d5926a9b72728f6f9e201e0580c4bf78f58..eadafcf4391f36658c26f94c5fec770aeb6c743a 100644 (file)
@@ -35,6 +35,7 @@
 #endif
 
 #define SWITCH_JFFS2 "/tmp/.switch_jffs2"
+#define OVERLAYDIR "/rom/overlay"
 
 static bool keep_sysupgrade;
 
@@ -181,13 +182,14 @@ switch2jffs(struct volume *v)
                return -1;
        }
 
-       creat("/tmp/.switch_jffs2", 0600);
-       ret = mount(v->blk, "/rom/overlay", "jffs2", MS_NOATIME, NULL);
-       unlink("/tmp/.switch_jffs2");
+       creat(SWITCH_JFFS2, 0600);
+       ret = mount(v->blk, OVERLAYDIR, "jffs2", MS_NOATIME, NULL);
+       unlink(SWITCH_JFFS2);
        if (ret) {
-               ULOG_ERR("failed - mount -t jffs2 %s /rom/overlay: %m\n", v->blk);
+               ULOG_ERR("failed - mount -t jffs2 %s %s: %m\n", v->blk, OVERLAYDIR);
                return -1;
        }
+       selinux_restorecon(OVERLAYDIR);
 
        if (mount("none", "/", NULL, MS_NOATIME | MS_REMOUNT, 0)) {
                ULOG_ERR("failed - mount -o remount,ro none: %m\n");