From: Yu Watanabe Date: Mon, 21 Jun 2021 12:12:49 +0000 (+0900) Subject: mount-util: use EXTRACT_KEEP_QUOTE to handle mount options X-Git-Tag: v249-rc2~33^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b23679e535c4f1c6514c26711056e2404c47beb;p=thirdparty%2Fsystemd.git mount-util: use EXTRACT_KEEP_QUOTE to handle mount options Otherwise, the quotes which wrap SELinux options are dropped. --- diff --git a/src/shared/mount-util.c b/src/shared/mount-util.c index 4a8564d5605..c4261b24944 100644 --- a/src/shared/mount-util.c +++ b/src/shared/mount-util.c @@ -679,7 +679,7 @@ int mount_option_mangle( _cleanup_free_ char *word = NULL; const struct libmnt_optmap *ent; - r = extract_first_word(&p, &word, ",", EXTRACT_UNQUOTE); + r = extract_first_word(&p, &word, ",", EXTRACT_KEEP_QUOTE); if (r < 0) return r; if (r == 0) diff --git a/src/test/test-mount-util.c b/src/test/test-mount-util.c index ab5184121c8..ac64e750598 100644 --- a/src/test/test-mount-util.c +++ b/src/test/test-mount-util.c @@ -69,6 +69,11 @@ static void test_mount_option_mangle(void) { opts = mfree(opts); assert_se(mount_option_mangle("rw,relatime,fmask=0022,dmask=0022,\"hogehoge", MS_RDONLY, &f, &opts) < 0); + + assert_se(mount_option_mangle("mode=1777,size=10%,nr_inodes=400k,uid=496107520,gid=496107520,context=\"system_u:object_r:svirt_sandbox_file_t:s0:c0,c1\"", 0, &f, &opts) == 0); + assert_se(f == 0); + assert_se(streq(opts, "mode=1777,size=10%,nr_inodes=400k,uid=496107520,gid=496107520,context=\"system_u:object_r:svirt_sandbox_file_t:s0:c0,c1\"")); + opts = mfree(opts); } static void test_bind_remount_recursive(void) {