aboutsummaryrefslogtreecommitdiff
path: root/sbin/ffsinfo
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2005-01-03 18:59:04 +0000
committerRobert Watson <rwatson@FreeBSD.org>2005-01-03 18:59:04 +0000
commit7bb84191e67aba9f11f9b4883ba52478cd0be4e7 (patch)
treeb4bd214eb2c1030d88e87ceb50d9dfc656edd0ac /sbin/ffsinfo
parent93f4f5a5605b2749b26c9138dcf215177d5ce174 (diff)
Notes
Diffstat (limited to 'sbin/ffsinfo')
-rw-r--r--sbin/ffsinfo/ffsinfo.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sbin/ffsinfo/ffsinfo.c b/sbin/ffsinfo/ffsinfo.c
index 3e3a8c246557..e556be82c7e2 100644
--- a/sbin/ffsinfo/ffsinfo.c
+++ b/sbin/ffsinfo/ffsinfo.c
@@ -63,6 +63,7 @@ static const char rcsid[] =
#include <ctype.h>
#include <err.h>
+#include <errno.h>
#include <fcntl.h>
#include <libufs.h>
#include <paths.h>
@@ -148,19 +149,25 @@ main(int argc, char **argv)
while ((ch=getopt(argc, argv, "g:i:l:o:")) != -1) {
switch(ch) {
case 'g':
- cfg_cg=atol(optarg);
+ cfg_cg=strtol(optarg, NULL, 0);
+ if(errno == EINVAL||errno == ERANGE)
+ err(1, "%s", optarg);
if(cfg_cg < -1) {
usage();
}
break;
case 'i':
- cfg_in=atol(optarg);
+ cfg_in=strtol(optarg, NULL, 0);
+ if(errno == EINVAL||errno == ERANGE)
+ err(1, "%s", optarg);
if(cfg_in < 0) {
usage();
}
break;
case 'l':
- cfg_lv=atol(optarg);
+ cfg_lv=strtol(optarg, NULL, 0);
+ if(errno == EINVAL||errno == ERANGE)
+ err(1, "%s", optarg);
if(cfg_lv < 0x1||cfg_lv > 0x3ff) {
usage();
}