From 77ced117535352ff965299befadb872edd37e7c9 Mon Sep 17 00:00:00 2001 From: Ivana Hutarova Varekova Date: Fri, 11 Mar 2011 12:01:13 +0100 Subject: [PATCH] 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 --- src/tools/cgclassify.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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); -- 2.47.2