Przeglądaj źródła

jail: actually apply filesystem-specific mount options

OCI supplied filesystems-specific mount options have not been stored
in the add_mount() function. strdup() them there and free the original
string in the OCI function.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle 3 lat temu
rodzic
commit
686cf7a5a9
1 zmienionych plików z 10 dodań i 1 usunięć
  1. 10 1
      jail/fs.c

+ 10 - 1
jail/fs.c

@@ -170,6 +170,10 @@ int add_mount(const char *source, const char *target, const char *filesystemtype
 	}
 	if (filesystemtype)
 		m->filesystemtype = strdup(filesystemtype);
+
+	if (optstr)
+		m->optstr = strdup(optstr);
+
 	m->mountflags = mountflags;
 	m->error = error;
 
@@ -350,10 +354,15 @@ int parseOCImount(struct blob_attr *msg)
 			return ret;
 	}
 
-	return add_mount(tb[OCI_MOUNT_SOURCE] ? blobmsg_get_string(tb[OCI_MOUNT_SOURCE]) : NULL,
+	ret = add_mount(tb[OCI_MOUNT_SOURCE] ? blobmsg_get_string(tb[OCI_MOUNT_SOURCE]) : NULL,
 		  blobmsg_get_string(tb[OCI_MOUNT_DESTINATION]),
 		  tb[OCI_MOUNT_TYPE] ? blobmsg_get_string(tb[OCI_MOUNT_TYPE]) : NULL,
 		  mount_flags, mount_data, err);
+
+	if (mount_data)
+		free(mount_data);
+
+	return ret;
 }
 
 static void build_noafile(void) {