aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbb/read.c7
-rw-r--r--networking/tls.c6
2 files changed, 7 insertions, 6 deletions
diff --git a/libbb/read.c b/libbb/read.c
index a342506a8..2e4317cd5 100644
--- a/libbb/read.c
+++ b/libbb/read.c
@@ -73,7 +73,14 @@ ssize_t FAST_FUNC read_close(int fd, void *buf, size_t size)
73 73
74ssize_t FAST_FUNC open_read_close(const char *filename, void *buf, size_t size) 74ssize_t FAST_FUNC open_read_close(const char *filename, void *buf, size_t size)
75{ 75{
76#if !ENABLE_PLATFORM_MINGW32
76 int fd = open(filename, O_RDONLY); 77 int fd = open(filename, O_RDONLY);
78#else
79 int fd, flag;
80
81 flag = O_RDONLY | (get_dev_type(filename) == DEV_URANDOM ? O_SPECIAL : 0);
82 fd = mingw_open(filename, flag);
83#endif
77 if (fd < 0) 84 if (fd < 0)
78 return fd; 85 return fd;
79 return read_close(fd, buf, size); 86 return read_close(fd, buf, size);
diff --git a/networking/tls.c b/networking/tls.c
index 869456a6a..e34acd69f 100644
--- a/networking/tls.c
+++ b/networking/tls.c
@@ -349,14 +349,8 @@ static void dump_tls_record(const void *vp, int len)
349 349
350void FAST_FUNC tls_get_random(void *buf, unsigned len) 350void FAST_FUNC tls_get_random(void *buf, unsigned len)
351{ 351{
352#if !ENABLE_PLATFORM_MINGW32
353 if (len != open_read_close("/dev/urandom", buf, len)) 352 if (len != open_read_close("/dev/urandom", buf, len))
354 xfunc_die(); 353 xfunc_die();
355#else
356 int fd = mingw_open("/dev/urandom", O_RDONLY|O_SPECIAL);
357 if (fd < 0 || len != read_close(fd, buf, len))
358 xfunc_die();
359#endif
360} 354}
361 355
362static void xorbuf3(void *dst, const void *src1, const void *src2, unsigned count) 356static void xorbuf3(void *dst, const void *src1, const void *src2, unsigned count)