summaryrefslogtreecommitdiffstats
path: root/main.cxx
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-05-19 11:42:20 -0400
committerDave Brolley <brolley@redhat.com>2009-05-19 11:42:20 -0400
commit88a931144b278916dd157e0f69636e87f8fdc949 (patch)
tree4cdd8928f2a0e4e506005e6d864fde0d07ddfedb /main.cxx
parente9cb523875a37b2d809afbbe0fffae980d8080a1 (diff)
parentc897e941ca645ab1e2aa325e5feaae30cc43060e (diff)
downloadsystemtap-steved-88a931144b278916dd157e0f69636e87f8fdc949.tar.gz
systemtap-steved-88a931144b278916dd157e0f69636e87f8fdc949.tar.xz
systemtap-steved-88a931144b278916dd157e0f69636e87f8fdc949.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'main.cxx')
-rw-r--r--main.cxx16
1 files changed, 11 insertions, 5 deletions
diff --git a/main.cxx b/main.cxx
index 6c28c4a5..b092ff12 100644
--- a/main.cxx
+++ b/main.cxx
@@ -480,6 +480,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
@@ -531,8 +532,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);
@@ -639,8 +640,8 @@ main (int argc, char * const argv [])
break;
case 's':
- s.buffer_size = atoi (optarg);
- if (s.buffer_size < 1 || s.buffer_size > 4095)
+ s.buffer_size = (int) strtoul (optarg, &num_endptr, 10);
+ if (*num_endptr != '\0' || s.buffer_size < 1 || s.buffer_size > 4095)
{
cerr << "Invalid buffer size (should be 1-4095)." << endl;
usage (s, 1);
@@ -652,7 +653,12 @@ main (int argc, char * const argv [])
break;
case 'x':
- s.target_pid = atoi(optarg);
+ s.target_pid = (int) strtoul(optarg, &num_endptr, 10);
+ if (*num_endptr != '\0')
+ {
+ cerr << "Invalid target process ID number." << endl;
+ usage (s, 1);
+ }
break;
case 'D':