From: Ivana Hutarova Varekova Date: Fri, 11 Mar 2011 11:01:13 +0000 (+0100) Subject: cgclassify: add argument check X-Git-Tag: v0.38~120 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77ced117535352ff965299befadb872edd37e7c9;p=thirdparty%2Flibcgroup.git cgclassify: add argument check Fix the problem described in https://bugzilla.redhat.com/show_bug.cgi?id=667968 cgclassify accepts invalid non-numeric arguments, testcase: $ cgclassify -g cpu:/ xxx; echo $? 0 Signed-off-by: Ivana Hutarova Varekova Signed-off-by: Jan Safranek --- diff --git a/src/tools/cgclassify.c b/src/tools/cgclassify.c index fcad4b29..cdd6a9db 100644 --- a/src/tools/cgclassify.c +++ b/src/tools/cgclassify.c @@ -106,6 +106,7 @@ int main(int argc, char *argv[]) int flag = 0; struct cgroup_group_spec *cgroup_list[CG_HIER_MAX]; int c; + char *endptr; if (argc < 2) { @@ -151,7 +152,14 @@ int main(int argc, char *argv[]) } for (i = optind; i < argc; i++) { - pid = (uid_t) atoi(argv[i]); + pid = (uid_t) strtol(argv[i], &endptr, 10); + if (endptr[0] != '\0') { + /* the input argument was not a number */ + fprintf(stderr, "Error: %s is not valid pid.\n", + argv[i]); + exit_code = 2; + continue; + } if (flag) ret = cgroup_register_unchanged_process(pid, flag);