From: Richard Levitte Date: Thu, 3 May 2001 07:50:39 +0000 (+0000) Subject: Some platforms (most notably Windows) do not have a $HOME by default. X-Git-Tag: OpenSSL_0_9_6b~32 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3c836ff0f8f108786505e768e8452dab111720c1;p=oweals%2Fopenssl.git Some platforms (most notably Windows) do not have a $HOME by default. For those, unless the environment variables RANDFILE or HOME are defined (the default case!), RAND_file_name() will return NULL. This change adds a default HOME for those platforms. To add a default HOME for any platform, just define DEFAULT_HOME in the proper place, wrapped in appropriate #ifdef..#endif, in e_os.h. --- diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index 7548ac324c..c2ae28c3a2 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -211,6 +211,12 @@ const char *RAND_file_name(char *buf, size_t size) { if (OPENSSL_issetugid() == 0) s=getenv("HOME"); +#ifdef DEFAULT_HOME + if (s == NULL) + { + s = DEFAULT_HOME; + } +#endif if (s != NULL && (strlen(s)+strlen(RFILE)+2 < size)) { strcpy(buf,s); @@ -220,7 +226,7 @@ const char *RAND_file_name(char *buf, size_t size) strcat(buf,RFILE); ret=buf; } - else + else buf[0] = '\0'; /* no file name */ } return(ret); diff --git a/e_os.h b/e_os.h index 4f9c983ef1..8a996096be 100644 --- a/e_os.h +++ b/e_os.h @@ -224,6 +224,7 @@ extern "C" { # define SSLEAY_CONF OPENSSL_CONF # define NUL_DEV "nul" # define RFILE ".rnd" +# define DEFAULT_HOME "C:" #else /* The non-microsoft world world */