diff --git a/sbin/gbde/gbde.c b/sbin/gbde/gbde.c index 16afe5e5a489..421242c38c80 100644 --- a/sbin/gbde/gbde.c +++ b/sbin/gbde/gbde.c @@ -174,18 +174,7 @@ g_read_data(struct g_consumer *cp, off_t offset, off_t length, int *error) static void random_bits(void *p, u_int len) { - static int fdr = -1; - int i; - - if (fdr < 0) { - fdr = open("/dev/urandom", O_RDONLY); - if (fdr < 0) - err(1, "/dev/urandom"); - } - - i = read(fdr, p, len); - if (i != (int)len) - err(1, "read from /dev/urandom"); + arc4random_buf(p, len); } /* XXX: not nice */