Whamcloud - gitweb
LU-11049 ssk: correctly handle null byte by lgss_sk 58/33358/2
authorSebastien Buisson <sbuisson@ddn.com>
Tue, 22 May 2018 15:50:53 +0000 (17:50 +0200)
committerOleg Drokin <green@whamcloud.com>
Sat, 19 Jan 2019 06:29:36 +0000 (06:29 +0000)
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 <sbuisson@ddn.com>
Change-Id: I7bd41ba3fc9fc56e4049f8080c0ee95ba26334a9
Reviewed-on: https://review.whamcloud.com/33358
Tested-by: Jenkins
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Jeremy Filizetti <jeremy.filizetti@gmail.com>
Reviewed-by: John L. Hammond <jhammond@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/utils/gss/lgss_sk.c

index a4288bb..cfefb30 100644 (file)
@@ -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)) {