summaryrefslogtreecommitdiffstats
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
parent27b2b78f9053dde311378689322903b65ed2e691 (diff)
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.
-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)