summaryrefslogtreecommitdiffstats
path: root/usr.sbin/gstat
diff options
context:
space:
mode:
authorkeramida <keramida@FreeBSD.org>2003-03-22 09:23:29 +0000
committerkeramida <keramida@FreeBSD.org>2003-03-22 09:23:29 +0000
commit63a7e8cbbbbd60eff3c1c67d0a7ae8b2203cf92f (patch)
tree89c6aad925db76b2f26623e53e9a7b5a7b485946 /usr.sbin/gstat
parent1ed5a21e15ef0c7c5744b46f7b48b1e848acad28 (diff)
downloadFreeBSD-src-63a7e8cbbbbd60eff3c1c67d0a7ae8b2203cf92f.zip
FreeBSD-src-63a7e8cbbbbd60eff3c1c67d0a7ae8b2203cf92f.tar.gz
Add error and range checking to strtoul() to avoid ending up with a
delay time of ULONG_MAX when -I is passed a non-numeric arg.
Diffstat (limited to 'usr.sbin/gstat')
-rw-r--r--usr.sbin/gstat/gstat.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/usr.sbin/gstat/gstat.c b/usr.sbin/gstat/gstat.c
index 6c6c4ad..8242935 100644
--- a/usr.sbin/gstat/gstat.c
+++ b/usr.sbin/gstat/gstat.c
@@ -75,7 +75,8 @@ main(int argc, char **argv)
case 'I':
p = NULL;
i = strtoul(optarg, &p, 0);
- if (p == optarg) {
+ if (p == optarg || errno == EINVAL ||
+ errno == ERANGE) {
errx(1, "Invalid argument to -I");
} else if (!strcmp(p, "s"))
i *= 1000000;
OpenPOWER on IntegriCloud