summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle2020-07-19 23:30:06 +0000
committerDaniel Golle2020-07-20 03:20:21 +0000
commit686cf7a5a9f38afcc2df10f73875f43bc18a8dd2 (patch)
tree79c436b346c159394ba7539dc7176e6fccfeee77
parent6f078ae8bbe62730f08dc6fca45b022d27102798 (diff)
downloadprocd-686cf7a5a9f38afcc2df10f73875f43bc18a8dd2.tar.gz
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>
-rw-r--r--jail/fs.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/jail/fs.c b/jail/fs.c
index abe12d4..e510c8b 100644
--- a/jail/fs.c
+++ b/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) {