From 877bbb205c95b273ea0d68f184cdda15acc08875 Mon Sep 17 00:00:00 2001 From: Sunzen Wang Date: Mon, 18 May 2009 20:38:02 +0800 Subject: Fix: Enhance -p option checking so as to just accept valid number --- main.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'main.cxx') diff --git a/main.cxx b/main.cxx index 1ac5dd5a..39d835d7 100644 --- a/main.cxx +++ b/main.cxx @@ -469,6 +469,7 @@ main (int argc, char * const argv []) while (true) { int long_opt; + char * num_endptr; #define LONG_OPT_KELF 1 #define LONG_OPT_KMAP 2 #define LONG_OPT_IGNORE_VMLINUX 3 @@ -518,8 +519,8 @@ main (int argc, char * const argv []) cerr << "Listing (-l) mode implies pass 2." << endl; usage (s, 1); } - s.last_pass = atoi (optarg); - if (s.last_pass < 1 || s.last_pass > 5) + s.last_pass = (int)strtoul(optarg, &num_endptr, 10); + if (*num_endptr != '\0' || s.last_pass < 1 || s.last_pass > 5) { cerr << "Invalid pass number (should be 1-5)." << endl; usage (s, 1); -- cgit