From c5d52b487a46721eddf5f21a7854f2c5f754105a Mon Sep 17 00:00:00 2001 From: Sebastien Buisson Date: Tue, 22 May 2018 17:50:53 +0200 Subject: [PATCH] LU-11049 ssk: correctly handle null byte by lgss_sk lgss_sk must include null byte with fsname and nodemap info taken from command line. Lustre-change: https://review.whamcloud.com/32510 Lustre-commit: 10173500fdb7332c369e72dc00e365f329d20f20 Signed-off-by: Sebastien Buisson Change-Id: I7bd41ba3fc9fc56e4049f8080c0ee95ba26334a9 Reviewed-on: https://review.whamcloud.com/33358 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Jeremy Filizetti Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin --- lustre/utils/gss/lgss_sk.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lustre/utils/gss/lgss_sk.c b/lustre/utils/gss/lgss_sk.c index a4288bb..cfefb30 100644 --- a/lustre/utils/gss/lgss_sk.c +++ b/lustre/utils/gss/lgss_sk.c @@ -543,8 +543,8 @@ int main(int argc, char **argv) config->skc_type = type; generate_prime = type & SK_TYPE_CLIENT; - strncpy(config->skc_nodemap, SK_DEFAULT_NODEMAP, - strlen(SK_DEFAULT_NODEMAP)); + /* SK_DEFAULT_NODEMAP is made to fit in skc_nodemap */ + strcpy(config->skc_nodemap, SK_DEFAULT_NODEMAP); if (!datafile) datafile = "/dev/random"; @@ -561,9 +561,15 @@ int main(int argc, char **argv) if (prime_bits != -1) config->skc_prime_bits = prime_bits; if (fsname) - strncpy(config->skc_fsname, fsname, strlen(fsname)); + /* fsname string length was checked when parsing + * command-line options + */ + strcpy(config->skc_fsname, fsname); if (nodemap) - strncpy(config->skc_nodemap, nodemap, strlen(nodemap)); + /* nodemap string length was checked when parsing + * command-line options + */ + strcpy(config->skc_nodemap, nodemap); if (mgsnids && parse_mgsnids(mgsnids, config)) goto error; if (sk_validate_config(config)) { -- 1.8.3.1