From: Frederic Saunier Date: Fri, 5 Feb 2016 10:11:36 +0000 (+0100) Subject: LU-7002 utils: SELinux context repeated in mount opts X-Git-Tag: 2.8.51~36 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=a40a4e630c515301497f409a491fd3eb6a715f01;ds=sidebyside LU-7002 utils: SELinux context repeated in mount opts 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 --- 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); } }