diff options
author | keramida <keramida@FreeBSD.org> | 2003-03-22 09:23:29 +0000 |
---|---|---|
committer | keramida <keramida@FreeBSD.org> | 2003-03-22 09:23:29 +0000 |
commit | 63a7e8cbbbbd60eff3c1c67d0a7ae8b2203cf92f (patch) | |
tree | 89c6aad925db76b2f26623e53e9a7b5a7b485946 /usr.sbin/gstat | |
parent | 1ed5a21e15ef0c7c5744b46f7b48b1e848acad28 (diff) | |
download | FreeBSD-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.c | 3 |
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; |