diff options
| author | Andrey A. Chernov <ache@FreeBSD.org> | 1997-03-30 23:33:29 +0000 |
|---|---|---|
| committer | Andrey A. Chernov <ache@FreeBSD.org> | 1997-03-30 23:33:29 +0000 |
| commit | 286fdb4a383338173dbb31a355778b51f45f7c1c (patch) | |
| tree | 8e2b85625afac77fbf7ce33ff61281463a46c65f | |
| parent | 5790155e89a33ed94753127a4d7e3c91df7817a1 (diff) | |
Notes
| -rw-r--r-- | games/random/random.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/games/random/random.c b/games/random/random.c index acb882ba6b2b..4d17b5355862 100644 --- a/games/random/random.c +++ b/games/random/random.c @@ -62,7 +62,6 @@ main(argc, argv) char *argv[]; { extern int optind; - time_t now; double denom; int ch, random_exit, selected, unbuffer_output; char *ep; @@ -94,16 +93,18 @@ main(argc, argv) denom = strtod(*argv, &ep); if (errno == ERANGE) err(1, "%s", *argv); - if (denom == 0 || *ep != '\0') + if (denom <= 0 || *ep != '\0') errx(1, "denominator is not valid."); + if (random_exit && denom > 255) + errx(1, "denominator must be <= 255 for random exit."); break; default: usage(); /* NOTREACHED */ } - (void)time(&now); - srandom((unsigned long)(now ^ getpid())); + if (srandomdev() < 0) + srandom(time(NULL) ^ getpid()); /* Compute a random exit status between 0 and denom - 1. */ if (random_exit) |
