Refactor parsing of the '-r' flag into its own function. This is intended to be a nonfunctional change.
Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com> --- src/tools/cgset.c | 74 +++++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/src/tools/cgset.c b/src/tools/cgset.c index ddaeac43be3e..9d4abbca94b7 100644 --- a/src/tools/cgset.c +++ b/src/tools/cgset.c @@ -73,12 +73,57 @@ static void usage(int status, const char *program_name) "parameters will be copied\n"); } +static int parse_r_flag(const char * const program_name, + const char * const name_value_str, + struct control_value * const name_value) +{ + int ret = 0; + char *copy, *buf; + + copy = strdup(name_value_str); + if (copy == NULL) { + fprintf(stderr, "%s: not enough memory\n", program_name); + ret = -1; + goto err; + } + + /* parse optarg value */ + buf = strtok(copy, "="); + if (buf == NULL) { + fprintf(stderr, "%s: " + "wrong parameter of option -r: %s\n", + program_name, optarg); + ret = -1; + goto err; + } + + strncpy(name_value->name, buf, FILENAME_MAX); + name_value->name[FILENAME_MAX-1] = '\0'; + + buf = strtok(NULL, "="); + if (buf == NULL) { + fprintf(stderr, "%s: " + "wrong parameter of option -r: %s\n", + program_name, optarg); + ret = -1; + goto err; + } + + strncpy(name_value->value, buf, CG_CONTROL_VALUE_MAX); + name_value->value[CG_CONTROL_VALUE_MAX-1] = '\0'; + +err: + if (copy) + free(copy); + + return ret; +} + int main(int argc, char *argv[]) { int ret = 0; int c; - char *buf; struct control_value *name_value = NULL; int nv_number = 0; int nv_max = 0; @@ -128,31 +173,10 @@ int main(int argc, char *argv[]) } } - /* parse optarg value */ - /* there is necessary to input the tuple n=v */ - buf = strtok(optarg, "="); - if (buf == NULL) { - fprintf(stderr, "%s: " - "wrong parameter of option -r: %s\n", - argv[0], optarg); - ret = -1; + ret = parse_r_flag(argv[0], optarg, + &name_value[nv_number]); + if (ret) goto err; - } - - strncpy(name_value[nv_number].name, buf, FILENAME_MAX); - name_value[nv_number].name[FILENAME_MAX-1] = '\0'; - - buf = strtok(NULL, "="); - if (buf == NULL) { - fprintf(stderr, "%s: " - "wrong parameter of option -r: %s\n", - argv[0], optarg); - ret = -1; - goto err; - } - - strncpy(name_value[nv_number].value, buf, CG_CONTROL_VALUE_MAX); - name_value[nv_number].value[CG_CONTROL_VALUE_MAX-1] = '\0'; nv_number++; break; -- 2.26.2 _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel