Since RAND_file_name() uses strlen, make sure the number that's
compared to it has the type size_t.  Included the needed headers to
make that happen.
diff --git a/crypto/rand/rand.h b/crypto/rand/rand.h
index 6b276d0..d4d8fbe 100644
--- a/crypto/rand/rand.h
+++ b/crypto/rand/rand.h
@@ -61,6 +61,12 @@
 
 #include <openssl/e_os2.h>
 
+#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
+#include <windows.h>
+#else
+#include <sys/types.h>
+#endif
+
 #ifdef  __cplusplus
 extern "C" {
 #endif
@@ -91,7 +97,7 @@
 void RAND_add(const void *buf,int num,double entropy);
 int  RAND_load_file(const char *file,long max_bytes);
 int  RAND_write_file(const char *file);
-const char *RAND_file_name(char *file,int num);
+const char *RAND_file_name(char *file,size_t num);
 int RAND_status(void);
 int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes);
 int RAND_egd(const char *path);
@@ -99,24 +105,16 @@
 void ERR_load_RAND_strings(void);
 int RAND_poll(void);
 
-#ifdef  __cplusplus
-}
-#endif
-
 #if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
-#include <windows.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
 
 void RAND_screen(void);
 int RAND_event(UINT, WPARAM, LPARAM);
 
+#endif
+
 #ifdef  __cplusplus
 }
 #endif
-#endif
 
 /* BEGIN ERROR CODES */
 /* The following lines are auto generated by the script mkerr.pl. Any changes
diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c
index ec137c4..8623e13 100644
--- a/crypto/rand/randfile.c
+++ b/crypto/rand/randfile.c
@@ -61,7 +61,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <openssl/e_os.h>
+#include "e_os.h"
 #include <openssl/crypto.h>
 #include <openssl/rand.h>
 
@@ -194,7 +194,7 @@
 	return (rand_err ? -1 : ret);
 	}
 
-const char *RAND_file_name(char *buf, int size)
+const char *RAND_file_name(char *buf, size_t size)
 	{
 	char *s=NULL;
 	char *ret=NULL;