From a40a4e630c515301497f409a491fd3eb6a715f01 Mon Sep 17 00:00:00 2001 From: Frederic Saunier Date: Fri, 5 Feb 2016 11:11:36 +0100 Subject: [PATCH] LU-7002 utils: SELinux context repeated in mount opts MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit SELinux context can only be specified once in mount options, thus append_context_for_mount() should not apply once again when called at mount time. Signed-off-by: Frederic Saunier Change-Id: I350b67ec42691b875aab085224185f2a7582d41d Reviewed-on: http://review.whamcloud.com/18319 Tested-by: Jenkins Reviewed-by: John L. Hammond Tested-by: Maloo Reviewed-by: Grégoire Pichon Reviewed-by: Sebastien Buisson Reviewed-by: Oleg Drokin --- lustre/utils/mount_utils_ldiskfs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lustre/utils/mount_utils_ldiskfs.c b/lustre/utils/mount_utils_ldiskfs.c index 2937a1b..1ce4aa1 100644 --- a/lustre/utils/mount_utils_ldiskfs.c +++ b/lustre/utils/mount_utils_ldiskfs.c @@ -93,8 +93,11 @@ extern char *progname; #define DUMMY_FILE_NAME_LEN 25 #define EXT3_DIRENT_SIZE DUMMY_FILE_NAME_LEN +static void append_unique(char *buf, char *prefix, char *key, char *val, + size_t maxbuflen); + /* - * Concatenate context of the temporary mount point iff selinux is enabled + * Concatenate context of the temporary mount point if selinux is enabled */ #ifdef HAVE_SELINUX static void append_context_for_mount(char *mntpt, struct mkfs_opts *mop) @@ -109,8 +112,9 @@ static void append_context_for_mount(char *mntpt, struct mkfs_opts *mop) } if (fcontext != NULL) { - strcat(mop->mo_ldd.ldd_mount_opts, ",context="); - strcat(mop->mo_ldd.ldd_mount_opts, fcontext); + append_unique(mop->mo_ldd.ldd_mount_opts, + ",", "context", fcontext, + sizeof(mop->mo_ldd.ldd_mount_opts)); freecon(fcontext); } } -- 1.8.3.1