aboutsummaryrefslogtreecommitdiffstats
path: root/src/_cffi_src/openssl/src
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2018-11-11 19:50:10 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2018-11-11 19:50:10 -0500
commitdb08466131a2d495e4bf58e34bf8d0090be04a2d (patch)
tree2fd45693106f04ba0f7efb3e7548db680b5eea1f /src/_cffi_src/openssl/src
parent5e52fdc5f8f3b6c970051c1bf3325b2d0ed8a5db (diff)
downloadcryptography-db08466131a2d495e4bf58e34bf8d0090be04a2d.tar.gz
cryptography-db08466131a2d495e4bf58e34bf8d0090be04a2d.tar.bz2
cryptography-db08466131a2d495e4bf58e34bf8d0090be04a2d.zip
Revert O_CLOEXEC change to fix builds (#4570)
Diffstat (limited to 'src/_cffi_src/openssl/src')
-rw-r--r--src/_cffi_src/openssl/src/osrandom_engine.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/_cffi_src/openssl/src/osrandom_engine.c b/src/_cffi_src/openssl/src/osrandom_engine.c
index 24dedda4..947c79aa 100644
--- a/src/_cffi_src/openssl/src/osrandom_engine.c
+++ b/src/_cffi_src/openssl/src/osrandom_engine.c
@@ -92,7 +92,7 @@ static struct {
/* return -1 on error */
static int dev_urandom_fd(void) {
- int fd, n;
+ int fd, n, flags;
struct stat st;
/* Check that fd still points to the correct device */
@@ -106,13 +106,20 @@ static int dev_urandom_fd(void) {
}
}
if (urandom_cache.fd < 0) {
- fd = open("/dev/urandom", O_RDONLY | O_CLOEXEC);
+ fd = open("/dev/urandom", O_RDONLY);
if (fd < 0) {
goto error;
}
if (fstat(fd, &st)) {
goto error;
}
+ /* set CLOEXEC flag */
+ flags = fcntl(fd, F_GETFD);
+ if (flags == -1) {
+ goto error;
+ } else if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1) {
+ goto error;
+ }
/* Another thread initialized the fd */
if (urandom_cache.fd >= 0) {
do {