diff options
| author | itojun <itojun@NetBSD.org> | 2003-09-06 12:42:00 +0000 |
|---|---|---|
| committer | itojun <itojun@NetBSD.org> | 2003-09-06 12:42:00 +0000 |
| commit | e2c411ce3c541e10f05006e9db5bde986a892b5d (patch) | |
| tree | 97ce7f50a6df5bb15af8564e2874869180d7c474 | |
| parent | b548db68460d059054081e4d142993a1d162dbe0 (diff) | |
use arc4random
| -rw-r--r-- | sbin/fsirand/fsirand.c | 12 | ||||
| -rw-r--r-- | sbin/newfs/mkfs.c | 8 | ||||
| -rw-r--r-- | sbin/newfs_lfs/lfs.c | 11 | ||||
| -rw-r--r-- | sbin/routed/main.c | 9 | ||||
| -rw-r--r-- | usr.sbin/makefs/ffs.c | 7 | ||||
| -rw-r--r-- | usr.sbin/makefs/ffs/mkfs.c | 12 | ||||
| -rw-r--r-- | usr.sbin/mrouted/main.c | 10 | ||||
| -rw-r--r-- | usr.sbin/mrouted/prune.c | 8 | ||||
| -rw-r--r-- | usr.sbin/mtrace/mtrace.c | 22 |
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))) |
