Commit 284f4f6b authored by Bernd Edlinger's avatar Bernd Edlinger
Browse files

Don't use getenv for critical functions when run as setuid/setgid

parent dc55e4f7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -9,6 +9,10 @@
 Changes between 1.1.0h and 1.1.1 [xx XXX xxxx]
  *) Don't use OPENSSL_ENGINES and OPENSSL_CONF environment values
     in libcrypto when run as setuid/setgid.
     [Bernd Edlinger]
  *) Added new public header file <openssl/rand_drbg.h> and documentation
     for the RAND_DRBG API. See manual page RAND_DRBG(7) for an overview.
     [Matthias St. Pierre]
+5 −3
Original line number Diff line number Diff line
@@ -480,9 +480,11 @@ char *CONF_get1_default_config_file(void)
    char *file, *sep = "";
    int len;

    if (!OPENSSL_issetugid()) {
        file = getenv("OPENSSL_CONF");
        if (file)
            return OPENSSL_strdup(file);
    }

    len = strlen(X509_get_default_cert_area());
#ifndef OPENSSL_SYS_VMS
+2 −1
Original line number Diff line number Diff line
@@ -317,7 +317,8 @@ ENGINE *ENGINE_by_id(const char *id)
     * Prevent infinite recursion if we're looking for the dynamic engine.
     */
    if (strcmp(id, "dynamic")) {
        if ((load_dir = getenv("OPENSSL_ENGINES")) == NULL)
        if (OPENSSL_issetugid()
                || (load_dir = getenv("OPENSSL_ENGINES")) == NULL)
            load_dir = ENGINESDIR;
        iterator = ENGINE_by_id("dynamic");
        if (!iterator || !ENGINE_ctrl_cmd_string(iterator, "ID", id, 0) ||
+1 −0
Original line number Diff line number Diff line
@@ -568,6 +568,7 @@ extension).
=item B<OPENSSL_ENGINES>

The path to the engines directory.
Ignored in set-user-ID and set-group-ID programs.

=back

+11 −0
Original line number Diff line number Diff line
@@ -48,6 +48,17 @@ application calls OPENSSL_config() it doesn't need to know or care about
ENGINE control operations because they can be performed by editing a
configuration file.

=head1 ENVIRONMENT

=over 4

=item B<OPENSSL_CONF>

The path to the config file.
Ignored in set-user-ID and set-group-ID programs.

=back

=head1 RETURN VALUES

Neither OPENSSL_config() nor OPENSSL_no_config() return a value.
Loading