diff -ru -x '*~' openssl-1.0.0e-orig/crypto/x509/x509_def.c openssl-1.0.0e/crypto/x509/x509_def.c --- openssl-1.0.0e-orig/crypto/x509/x509_def.c 1999-09-11 19:54:11.000000000 +0200 +++ openssl-1.0.0e/crypto/x509/x509_def.c 2011-09-12 18:30:59.386501609 +0200 @@ -57,6 +57,10 @@ */ #include +#include +#include +#include +#include #include "cryptlib.h" #include #include @@ -71,7 +75,25 @@ { return(X509_CERT_DIR); } const char *X509_get_default_cert_file(void) - { return(X509_CERT_FILE); } + { + static char buf[PATH_MAX] = X509_CERT_FILE; + static int init = 0; + if (!init) { + init = 1; + char * s = getenv("OPENSSL_X509_CERT_FILE"); + if (s) { +#ifndef OPENSSL_SYS_WINDOWS + if (getuid() == geteuid()) { +#endif + strncpy(buf, s, sizeof(buf)); + buf[sizeof(buf) - 1] = 0; +#ifndef OPENSSL_SYS_WINDOWS + } +#endif + } + } + return buf; + } const char *X509_get_default_cert_dir_env(void) { return(X509_CERT_DIR_EVP); }