summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoritojun <itojun@NetBSD.org>2003-09-06 12:42:00 +0000
committeritojun <itojun@NetBSD.org>2003-09-06 12:42:00 +0000
commite2c411ce3c541e10f05006e9db5bde986a892b5d (patch)
tree97ce7f50a6df5bb15af8564e2874869180d7c474
parentb548db68460d059054081e4d142993a1d162dbe0 (diff)
use arc4random
-rw-r--r--sbin/fsirand/fsirand.c12
-rw-r--r--sbin/newfs/mkfs.c8
-rw-r--r--sbin/newfs_lfs/lfs.c11
-rw-r--r--sbin/routed/main.c9
-rw-r--r--usr.sbin/makefs/ffs.c7
-rw-r--r--usr.sbin/makefs/ffs/mkfs.c12
-rw-r--r--usr.sbin/mrouted/main.c10
-rw-r--r--usr.sbin/mrouted/prune.c8
-rw-r--r--usr.sbin/mtrace/mtrace.c22
9 files changed, 32 insertions, 67 deletions
diff --git a/sbin/fsirand/fsirand.c b/sbin/fsirand/fsirand.c
index 22f22be56f6..37b490820e9 100644
--- a/sbin/fsirand/fsirand.c
+++ b/sbin/fsirand/fsirand.c
@@ -1,4 +1,4 @@
-/* $NetBSD: fsirand.c,v 1.21 2003/04/17 04:01:56 lukem Exp $ */
+/* $NetBSD: fsirand.c,v 1.22 2003/09/06 12:47:45 itojun Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: fsirand.c,v 1.21 2003/04/17 04:01:56 lukem Exp $");
+__RCSID("$NetBSD: fsirand.c,v 1.22 2003/09/06 12:47:45 itojun Exp $");
#endif /* lint */
#include <sys/param.h>
@@ -178,7 +178,7 @@ fixinodes(int fd, struct fs *fs, struct disklabel *lab, int pflag, long xorval)
ufs_rw32(dp2[i].di_gen, needswap));
else
dp2[i].di_gen =
- ufs_rw32(random() ^ xorval,
+ ufs_rw32((arc4random() & INT32_MAX)^ xorval,
needswap);
} else {
if (pflag)
@@ -187,7 +187,7 @@ fixinodes(int fd, struct fs *fs, struct disklabel *lab, int pflag, long xorval)
ufs_rw32(dp1[i].di_gen, needswap));
else
dp1[i].di_gen =
- ufs_rw32(random() ^ xorval,
+ ufs_rw32((arc4random() & INT32_MAX) ^ xorval,
needswap);
}
if (++ino > imax)
@@ -241,7 +241,6 @@ main(int argc, char *argv[])
struct disklabel lab;
long xorval;
char *ep;
- struct timeval tv;
int fd, c, Fflag, pflag, openflags;
xorval = 0;
@@ -274,9 +273,6 @@ main(int argc, char *argv[])
if (argc != 1)
usage();
- (void) gettimeofday(&tv, NULL);
- srandom((unsigned) tv.tv_usec);
-
special = argv[0];
openflags = pflag ? O_RDONLY : O_RDWR;
if (Fflag)
diff --git a/sbin/newfs/mkfs.c b/sbin/newfs/mkfs.c
index 80b4283acab..8984768f951 100644
--- a/sbin/newfs/mkfs.c
+++ b/sbin/newfs/mkfs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mkfs.c,v 1.78 2003/09/04 15:31:58 itojun Exp $ */
+/* $NetBSD: mkfs.c,v 1.79 2003/09/06 12:48:53 itojun Exp $ */
/*
* Copyright (c) 1980, 1989, 1993
@@ -73,7 +73,7 @@
#if 0
static char sccsid[] = "@(#)mkfs.c 8.11 (Berkeley) 5/3/95";
#else
-__RCSID("$NetBSD: mkfs.c,v 1.78 2003/09/04 15:31:58 itojun Exp $");
+__RCSID("$NetBSD: mkfs.c,v 1.79 2003/09/06 12:48:53 itojun Exp $");
#endif
#endif /* not lint */
@@ -1130,7 +1130,7 @@ iput(union dinode *ip, ino_t ino)
dp1->di_db[i] = bswap32(ip->dp1.di_db[i]);
} else
*dp1 = ip->dp1;
- dp1->di_gen = random();
+ dp1->di_gen = arc4random() & INT32_MAX;
} else {
dp2 = (struct ufs2_dinode *)iobuf;
dp2 += ino_to_fsbo(&sblock, ino);
@@ -1140,7 +1140,7 @@ iput(union dinode *ip, ino_t ino)
dp2->di_db[i] = bswap32(ip->dp2.di_db[i]);
} else
*dp2 = ip->dp2;
- dp2->di_gen = random();
+ dp2->di_gen = arc4random() & INT32_MAX;
}
wtfs(d, sblock.fs_bsize, iobuf);
}
diff --git a/sbin/newfs_lfs/lfs.c b/sbin/newfs_lfs/lfs.c
index db956884e62..d8ed9fe6bf6 100644
--- a/sbin/newfs_lfs/lfs.c
+++ b/sbin/newfs_lfs/lfs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs.c,v 1.30 2003/08/12 08:41:37 dsl Exp $ */
+/* $NetBSD: lfs.c,v 1.31 2003/09/06 12:50:00 itojun Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)lfs.c 8.5 (Berkeley) 5/24/95";
#else
-__RCSID("$NetBSD: lfs.c,v 1.30 2003/08/12 08:41:37 dsl Exp $");
+__RCSID("$NetBSD: lfs.c,v 1.31 2003/09/06 12:50:00 itojun Exp $");
#endif
#endif /* not lint */
@@ -346,11 +346,8 @@ make_lfs(int fd, uint secsize, struct partition *partp, int minfree,
if (version > 1) {
lfsp->lfs_inopf = secsize/DINODE1_SIZE;
lfsp->lfs_interleave = interleave;
- if (roll_id == 0) {
- /* Pick one; even time(NULL) would almost do */
- srandom(time(NULL));
- roll_id = random();
- }
+ if (roll_id == 0)
+ roll_id = arc4random();
lfsp->lfs_ident = roll_id;
}
diff --git a/sbin/routed/main.c b/sbin/routed/main.c
index 5c57c7506e0..70d3ffb8974 100644
--- a/sbin/routed/main.c
+++ b/sbin/routed/main.c
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.33 2003/08/13 08:51:05 itojun Exp $ */
+/* $NetBSD: main.c,v 1.34 2003/09/06 12:46:50 itojun Exp $ */
/*
* Copyright (c) 1983, 1988, 1993
@@ -46,7 +46,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 1988, 1993\n"
"The Regents of the University of California."
" All rights reserved.\n");
#ifdef __NetBSD__
-__RCSID("$NetBSD: main.c,v 1.33 2003/08/13 08:51:05 itojun Exp $");
+__RCSID("$NetBSD: main.c,v 1.34 2003/09/06 12:46:50 itojun Exp $");
#elif defined(__FreeBSD__)
__RCSID("$FreeBSD$");
#else
@@ -303,7 +303,6 @@ usage:
pidfile(NULL);
#endif
mypid = getpid();
- srandom((int)(clk.tv_sec ^ clk.tv_usec ^ mypid));
/* prepare socket connected to the kernel.
*/
@@ -837,8 +836,8 @@ intvl_random(struct timeval *tp, /* put value here */
{
tp->tv_sec = (time_t)(hi == lo
? lo
- : (lo + random() % ((hi - lo))));
- tp->tv_usec = random() % 1000000;
+ : (lo + arc4random() % ((hi - lo))));
+ tp->tv_usec = arc4random() % 1000000;
}
diff --git a/usr.sbin/makefs/ffs.c b/usr.sbin/makefs/ffs.c
index dc9e9c4e603..2a00cf14b32 100644
--- a/usr.sbin/makefs/ffs.c
+++ b/usr.sbin/makefs/ffs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs.c,v 1.20 2003/08/07 11:25:32 agc Exp $ */
+/* $NetBSD: ffs.c,v 1.21 2003/09/06 12:42:00 itojun Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: ffs.c,v 1.20 2003/08/07 11:25:32 agc Exp $");
+__RCSID("$NetBSD: ffs.c,v 1.21 2003/09/06 12:42:00 itojun Exp $");
#endif /* !__lint */
#include <sys/param.h>
@@ -1029,9 +1029,8 @@ ffs_write_inode(union dinode *dp, uint32_t ino, const fsinfo_t *fsopts)
initediblk < ufs_rw32(cgp->cg_niblk, fsopts->needswap)) {
memset(buf, 0, fs->fs_bsize);
dip = (struct ufs2_dinode *)buf;
- srandom(time(NULL));
for (i = 0; i < INOPB(fs); i++) {
- dip->di_gen = random() / 2 + 1;
+ dip->di_gen = (arc4random() & INT32_MAX) / 2 + 1;
dip++;
}
ffs_wtfs(fsbtodb(fs, ino_to_fsba(fs,
diff --git a/usr.sbin/makefs/ffs/mkfs.c b/usr.sbin/makefs/ffs/mkfs.c
index 44c6cb1e119..2c682060ceb 100644
--- a/usr.sbin/makefs/ffs/mkfs.c
+++ b/usr.sbin/makefs/ffs/mkfs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mkfs.c,v 1.16 2003/08/07 11:25:33 agc Exp $ */
+/* $NetBSD: mkfs.c,v 1.17 2003/09/06 12:44:34 itojun Exp $ */
/*
* Copyright (c) 2002 Networks Associates Technology, Inc.
@@ -44,7 +44,7 @@
static char sccsid[] = "@(#)mkfs.c 8.11 (Berkeley) 5/3/95";
#else
#ifdef __RCSID
-__RCSID("$NetBSD: mkfs.c,v 1.16 2003/08/07 11:25:33 agc Exp $");
+__RCSID("$NetBSD: mkfs.c,v 1.17 2003/09/06 12:44:34 itojun Exp $");
#endif
#endif
#endif /* not lint */
@@ -438,7 +438,7 @@ ffs_mkfs(const char *fsys, const fsinfo_t *fsopts)
sblock.fs_clean = FS_ISCLEAN;
sblock.fs_ronly = 0;
sblock.fs_id[0] = start_time.tv_sec;
- sblock.fs_id[1] = random();
+ sblock.fs_id[1] = arc4random() & INT32_MAX;
sblock.fs_fsmnt[0] = '\0';
csfrags = howmany(sblock.fs_cssize, sblock.fs_fsize);
sblock.fs_dsize = sblock.fs_size - sblock.fs_sblkno -
@@ -743,10 +743,10 @@ initcg(int cylno, time_t utime, const fsinfo_t *fsopts)
for (i = 0; i < acg.cg_initediblk; i++) {
if (sblock.fs_magic == FS_UFS1_MAGIC) {
/* No need to swap, it'll stay random */
- dp1->di_gen = random();
+ dp1->di_gen = arc4random() & INT32_MAX;
dp1++;
} else {
- dp2->di_gen = random();
+ dp2->di_gen = arc4random() & INT32_MAX;
dp2++;
}
}
@@ -761,7 +761,7 @@ initcg(int cylno, time_t utime, const fsinfo_t *fsopts)
i += sblock.fs_frag) {
dp1 = (struct ufs1_dinode *)(&iobuf[start]);
for (j = 0; j < INOPB(&sblock); j++) {
- dp1->di_gen = random();
+ dp1->di_gen = arc4random() & INT32_MAX;
dp1++;
}
ffs_wtfs(fsbtodb(&sblock, cgimin(&sblock, cylno) + i),
diff --git a/usr.sbin/mrouted/main.c b/usr.sbin/mrouted/main.c
index 356181cfe22..fe08c5b9b32 100644
--- a/usr.sbin/mrouted/main.c
+++ b/usr.sbin/mrouted/main.c
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.19 2003/05/16 18:10:38 itojun Exp $ */
+/* $NetBSD: main.c,v 1.20 2003/09/06 12:45:00 itojun Exp $ */
/*
* The mrouted program is covered by the license in the accompanying file
@@ -29,7 +29,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("@(#) $NetBSD: main.c,v 1.19 2003/05/16 18:10:38 itojun Exp $");
+__RCSID("@(#) $NetBSD: main.c,v 1.20 2003/09/06 12:45:00 itojun Exp $");
#endif
#include <err.h>
@@ -172,12 +172,6 @@ usage: fprintf(stderr,
logit(LOG_NOTICE, 0, "%s", versionstring);
-#ifdef SYSV
- srand48(time(NULL));
-#else
- srandom(gethostid());
-#endif
-
/*
* Get generation id
*/
diff --git a/usr.sbin/mrouted/prune.c b/usr.sbin/mrouted/prune.c
index 9a750112cf3..b9fdb3b1cfe 100644
--- a/usr.sbin/mrouted/prune.c
+++ b/usr.sbin/mrouted/prune.c
@@ -1,4 +1,4 @@
-/* $NetBSD: prune.c,v 1.14 2003/05/16 22:59:50 dsl Exp $ */
+/* $NetBSD: prune.c,v 1.15 2003/09/06 12:45:00 itojun Exp $ */
/*
* The mrouted program is covered by the license in the accompanying file
@@ -21,11 +21,7 @@ extern int phys_vif;
/*
* dither cache lifetime to obtain a value between x and 2*x
*/
-#ifdef SYSV
-#define CACHE_LIFETIME(x) ((x) + (lrand48() % (x)))
-#else
-#define CACHE_LIFETIME(x) ((x) + (random() % (x)))
-#endif
+#define CACHE_LIFETIME(x) ((x) + (arc4random() % (x)))
#define CHK_GS(x, y) { \
switch(x) { \
diff --git a/usr.sbin/mtrace/mtrace.c b/usr.sbin/mtrace/mtrace.c
index 08fac7fb407..7b32d58d28d 100644
--- a/usr.sbin/mtrace/mtrace.c
+++ b/usr.sbin/mtrace/mtrace.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mtrace.c,v 1.32 2003/08/17 22:12:43 itojun Exp $ */
+/* $NetBSD: mtrace.c,v 1.33 2003/09/06 12:45:01 itojun Exp $ */
/*
* mtrace.c
@@ -52,7 +52,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: mtrace.c,v 1.32 2003/08/17 22:12:43 itojun Exp $");
+__RCSID("$NetBSD: mtrace.c,v 1.33 2003/09/06 12:45:01 itojun Exp $");
#endif
#include <sys/types.h>
@@ -442,11 +442,7 @@ send_recv(u_int32_t dst, int type, int code, int tries, struct resp_buf *save)
* Change the qid for each request sent to avoid being confused
* by duplicate responses
*/
-#ifdef SYSV
- query->tr_qid = ((u_int32_t)lrand48() >> 8);
-#else
- query->tr_qid = ((u_int32_t)random() >> 8);
-#endif
+ query->tr_qid = arc4random() >> 8;
/*
* Set timer to calculate delays, then send query
@@ -1154,7 +1150,6 @@ main(int argc, char **argv)
u_int32_t lastout = 0;
int numstats = 1;
int waittime;
- int seed;
if (geteuid() != 0) {
fprintf(stderr, "mtrace: must be root\n");
@@ -1367,17 +1362,6 @@ Usage: mtrace [-Mlnps] [-w wait] [-m max_hops] [-q nqueries] [-g gateway]\n\
if (lcl_addr == 0) lcl_addr = addr.sin_addr.s_addr;
/*
- * Initialize the seed for random query identifiers.
- */
- gettimeofday(&tv, 0);
- seed = tv.tv_usec ^ lcl_addr;
-#ifdef SYSV
- srand48(seed);
-#else
- srandom(seed);
-#endif
-
- /*
* Protect against unicast queries to mrouted versions that might crash.
*/
if (gwy && !IN_MULTICAST(ntohl(gwy)))