aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/rand
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2004-01-26 23:45:32 +0000
committerRichard Levitte <levitte@openssl.org>2004-01-26 23:45:32 +0000
commit4de65cbc06c28f9512d88be159bd6f770fb15a14 (patch)
treef3e03fde76ddf09af9f1fe9ff69b127ab994c2c9 /crypto/rand
parent27b2b78f9053dde311378689322903b65ed2e691 (diff)
downloadopenssl-4de65cbc06c28f9512d88be159bd6f770fb15a14.tar.gz
S_IFBLK and S_IFCHR may not exist in some places (like Windows), so
let's check for those macros, and if they aren't defined, let's assume there aren't Unixly devices on this platform.
Diffstat (limited to 'crypto/rand')
-rw-r--r--crypto/rand/randfile.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c
index f1f250c5bf..8b072e0679 100644
--- a/crypto/rand/randfile.c
+++ b/crypto/rand/randfile.c
@@ -110,6 +110,7 @@ int RAND_load_file(const char *file, long bytes)
in=fopen(file,"rb");
if (in == NULL) goto err;
+#if defined(S_IFBLK) && !defined(S_IFCHR)
if (sb.st_mode & (S_IFBLK | S_IFCHR)) {
/* this file is a device. we don't want read an infinite number
* of bytes from a random device, nor do we want to use buffered
@@ -118,6 +119,7 @@ int RAND_load_file(const char *file, long bytes)
bytes = (bytes == -1) ? 2048 : bytes; /* ok, is 2048 enough? */
setvbuf(in, NULL, _IONBF, 0); /* don't do buffered reads */
}
+#endif
for (;;)
{
if (bytes > 0)
@@ -151,6 +153,7 @@ int RAND_write_file(const char *file)
i=stat(file,&sb);
if (i != -1) {
+#if defined(S_IFBLK) && !defined(S_IFCHR)
if (sb.st_mode & (S_IFBLK | S_IFCHR)) {
/* this file is a device. we don't write back to it.
* we "succeed" on the assumption this is some sort
@@ -159,6 +162,7 @@ int RAND_write_file(const char *file)
*/
return(1);
}
+#endif
}
#if defined(O_CREAT) && !defined(OPENSSL_SYS_WIN32)