From: jacob Date: Fri, 25 Mar 2005 19:39:04 +0000 (+0000) Subject: b=5975 X-Git-Tag: v1_8_0_110~486^7~112 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=16cf25c332cfd2d8cc688728e8063627c73d2c1e;p=fs%2Flustre-release.git b=5975 r=adilger use lustre_cfg_bufs_set_string() in userspace to NULL-terminate the flags --- diff --git a/lustre/utils/lustre_cfg.c b/lustre/utils/lustre_cfg.c index 33f0264..149f181 100644 --- a/lustre/utils/lustre_cfg.c +++ b/lustre/utils/lustre_cfg.c @@ -208,7 +208,7 @@ int jt_obd_cleanup(int argc, char **argv) struct lustre_cfg *lcfg; char force = 'F'; char failover = 'A'; - char flags[3]; + char flags[3] = { 0 }; int flag_cnt = 0, n; int rc; @@ -224,7 +224,10 @@ int jt_obd_cleanup(int argc, char **argv) if (argc < 1 || argc > 3) return CMD_HELP; - for (n = 1; n < argc; n++) + /* we are protected from overflowing our buffer by the argc + * check above + */ + for (n = 1; n < argc; n++) { if (strcmp(argv[n], "force") == 0) { flags[flag_cnt++] = force; } else if (strcmp(argv[n], "failover") == 0) { @@ -233,9 +236,10 @@ int jt_obd_cleanup(int argc, char **argv) fprintf(stderr, "unknown option: %s", argv[n]); return CMD_HELP; } + } if (flag_cnt) { - lustre_cfg_bufs_set(&bufs, 1, flags, flag_cnt); + lustre_cfg_bufs_set_string(&bufs, 1, flags); } lcfg = lustre_cfg_new(LCFG_CLEANUP, &bufs);