aboutsummaryrefslogtreecommitdiffstats
path: root/package/hostapd/patches/700-use_dev_urandom.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/hostapd/patches/700-use_dev_urandom.patch')
-rw-r--r--package/hostapd/patches/700-use_dev_urandom.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/package/hostapd/patches/700-use_dev_urandom.patch b/package/hostapd/patches/700-use_dev_urandom.patch
new file mode 100644
index 0000000000..b72319ff17
--- /dev/null
+++ b/package/hostapd/patches/700-use_dev_urandom.patch
@@ -0,0 +1,47 @@
+--- 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 ||