openssl rehash: use libcrypto variables for default dir
authorRichard Levitte <levitte@openssl.org>
Thu, 12 Apr 2018 11:30:57 +0000 (13:30 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 12 Apr 2018 13:34:58 +0000 (15:34 +0200)
X509_get_default_cert_dir_env() returns the default environment
variable to check for certificate directories.
X509_get_default_cert_dir() returns the default configured certificate
directory.

Use these instead of hard coding our own values, and thereby be more
integrated with the rest of OpenSSL.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5937)

apps/rehash.c

index 6f2b5da4ad463e9c600df773bf42d28cbb9fbc31..2b6167f1de76da44e7557505c6e5900227c0724c 100644 (file)
@@ -479,13 +479,14 @@ int rehash_main(int argc, char **argv)
     if (*argv != NULL) {
         while (*argv != NULL)
             errs += do_dir(*argv++, h);
-    } else if ((env = getenv("SSL_CERT_DIR")) != NULL) {
+    } else if ((env = getenv(X509_get_default_cert_dir_env())) != NULL) {
+        char lsc[2] = { LIST_SEPARATOR_CHAR, '\0' };
         m = OPENSSL_strdup(env);
-        for (e = strtok(m, ":"); e != NULL; e = strtok(NULL, ":"))
+        for (e = strtok(m, lsc); e != NULL; e = strtok(NULL, lsc))
             errs += do_dir(e, h);
         OPENSSL_free(m);
     } else {
-        errs += do_dir("/etc/ssl/certs", h);
+        errs += do_dir(X509_get_default_cert_dir(), h);
     }
 
  end: