You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/package/hostapd/patches/700-use_dev_urandom.patch

48 lines
1.7 KiB
Diff

--- a/src/crypto/random.c
+++ b/src/crypto/random.c
@@ -202,16 +202,16 @@ int random_pool_ready(void)
/*
* Try to fetch some more data from the kernel high quality
- * /dev/random. There may not be enough data available at this point,
+ * /dev/urandom. There may not be enough data available at this point,
* so use non-blocking read to avoid blocking the application
* completely.
*/
- fd = open("/dev/random", O_RDONLY | O_NONBLOCK);
+ fd = open("/dev/urandom", O_RDONLY | O_NONBLOCK);
if (fd < 0) {
#ifndef CONFIG_NO_STDOUT_DEBUG
int error = errno;
- perror("open(/dev/random)");
- wpa_printf(MSG_ERROR, "random: Cannot open /dev/random: %s",
+ perror("open(/dev/urandom)");
+ wpa_printf(MSG_ERROR, "random: Cannot open /dev/urandom: %s",
strerror(error));
#endif /* CONFIG_NO_STDOUT_DEBUG */
return -1;
@@ -220,12 +220,12 @@ int random_pool_ready(void)
res = read(fd, dummy_key + dummy_key_avail,
sizeof(dummy_key) - dummy_key_avail);
if (res < 0) {
- wpa_printf(MSG_ERROR, "random: Cannot read from /dev/random: "
+ wpa_printf(MSG_ERROR, "random: Cannot read from /dev/urandom: "
"%s", strerror(errno));
res = 0;
}
wpa_printf(MSG_DEBUG, "random: Got %u/%u bytes from "
- "/dev/random", (unsigned) res,
+ "/dev/urandom", (unsigned) res,
(unsigned) (sizeof(dummy_key) - dummy_key_avail));
dummy_key_avail += res;
close(fd);
@@ -234,7 +234,7 @@ int random_pool_ready(void)
return 1;
wpa_printf(MSG_INFO, "random: Only %u/%u bytes of strong "
- "random data available from /dev/random",
+ "random data available from /dev/urandom",
(unsigned) dummy_key_avail, (unsigned) sizeof(dummy_key));
if (own_pool_ready >= MIN_READY_MARK ||