summaryrefslogtreecommitdiffstats
path: root/sbin/ping6
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2015-08-16 23:23:58 +0000
committerdelphij <delphij@FreeBSD.org>2015-08-16 23:23:58 +0000
commit376f56d8e01ecb24fc7d36efbc3c07290700702e (patch)
treec2f15df2fdb74c6777b8c69207fed6ee38411d5e /sbin/ping6
parent1b7fbf2be61a8abeba7a6da0a1ea7b36a6d37639 (diff)
downloadFreeBSD-src-376f56d8e01ecb24fc7d36efbc3c07290700702e.zip
FreeBSD-src-376f56d8e01ecb24fc7d36efbc3c07290700702e.tar.gz
Use arc4random_buf(). While there, unifdef the code for HAVE_ARC4RANDOM.
MFC after: 2 weeks
Diffstat (limited to 'sbin/ping6')
-rw-r--r--sbin/ping6/Makefile3
-rw-r--r--sbin/ping6/ping6.c15
2 files changed, 2 insertions, 16 deletions
diff --git a/sbin/ping6/Makefile b/sbin/ping6/Makefile
index 35a76e4..707bff4 100644
--- a/sbin/ping6/Makefile
+++ b/sbin/ping6/Makefile
@@ -3,8 +3,7 @@
PROG= ping6
MAN= ping6.8
-CFLAGS+=-DIPSEC -DKAME_SCOPEID -DUSE_RFC2292BIS \
- -DHAVE_ARC4RANDOM
+CFLAGS+=-DIPSEC -DKAME_SCOPEID -DUSE_RFC2292BIS
WARNS?= 3
BINOWN= root
diff --git a/sbin/ping6/ping6.c b/sbin/ping6/ping6.c
index d71c021..03381e0 100644
--- a/sbin/ping6/ping6.c
+++ b/sbin/ping6/ping6.c
@@ -288,9 +288,6 @@ main(int argc, char *argv[])
{
struct timeval last, intvl;
struct sockaddr_in6 from, *sin6;
-#ifndef HAVE_ARC4RANDOM
- struct timeval seed;
-#endif
struct addrinfo hints, *res;
struct sigaction si_sa;
int cc, i;
@@ -751,17 +748,7 @@ main(int argc, char *argv[])
*datap++ = i;
ident = getpid() & 0xFFFF;
-#ifndef HAVE_ARC4RANDOM
- gettimeofday(&seed, NULL);
- srand((unsigned int)(seed.tv_sec ^ seed.tv_usec ^ (long)ident));
- memset(nonce, 0, sizeof(nonce));
- for (i = 0; i < sizeof(nonce); i += sizeof(int))
- *((int *)&nonce[i]) = rand();
-#else
- memset(nonce, 0, sizeof(nonce));
- for (i = 0; i < (int)sizeof(nonce); i += sizeof(u_int32_t))
- *((u_int32_t *)&nonce[i]) = arc4random();
-#endif
+ arc4random_buf(nonce, sizeof(nonce));
optval = 1;
if (options & F_DONTFRAG)
if (setsockopt(s, IPPROTO_IPV6, IPV6_DONTFRAG,
OpenPOWER on IntegriCloud