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.
This commit is contained in:
parent
cf2d9e09b3
commit
f0b54fefe9
@ -211,6 +211,12 @@ const char *RAND_file_name(char *buf, size_t size)
|
|||||||
{
|
{
|
||||||
if (OPENSSL_issetugid() == 0)
|
if (OPENSSL_issetugid() == 0)
|
||||||
s=getenv("HOME");
|
s=getenv("HOME");
|
||||||
|
#ifdef DEFAULT_HOME
|
||||||
|
if (s == NULL)
|
||||||
|
{
|
||||||
|
s = DEFAULT_HOME;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (s != NULL && (strlen(s)+strlen(RFILE)+2 < size))
|
if (s != NULL && (strlen(s)+strlen(RFILE)+2 < size))
|
||||||
{
|
{
|
||||||
strcpy(buf,s);
|
strcpy(buf,s);
|
||||||
@ -220,7 +226,7 @@ const char *RAND_file_name(char *buf, size_t size)
|
|||||||
strcat(buf,RFILE);
|
strcat(buf,RFILE);
|
||||||
ret=buf;
|
ret=buf;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
buf[0] = '\0'; /* no file name */
|
buf[0] = '\0'; /* no file name */
|
||||||
}
|
}
|
||||||
return(ret);
|
return(ret);
|
||||||
|
1
e_os.h
1
e_os.h
@ -230,6 +230,7 @@ extern "C" {
|
|||||||
# define SSLEAY_CONF OPENSSL_CONF
|
# define SSLEAY_CONF OPENSSL_CONF
|
||||||
# define NUL_DEV "nul"
|
# define NUL_DEV "nul"
|
||||||
# define RFILE ".rnd"
|
# define RFILE ".rnd"
|
||||||
|
# define DEFAULT_HOME "C:"
|
||||||
|
|
||||||
#else /* The non-microsoft world world */
|
#else /* The non-microsoft world world */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user