mirror of
https://github.com/openssl/openssl.git
synced 2024-11-23 18:13:39 +08:00
Don't use getenv for critical functions when run as setuid/setgid
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5856)
This commit is contained in:
parent
dc55e4f70f
commit
284f4f6b70
4
CHANGES
4
CHANGES
@ -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]
|
||||
|
@ -480,9 +480,11 @@ char *CONF_get1_default_config_file(void)
|
||||
char *file, *sep = "";
|
||||
int len;
|
||||
|
||||
file = getenv("OPENSSL_CONF");
|
||||
if (file)
|
||||
return OPENSSL_strdup(file);
|
||||
if (!OPENSSL_issetugid()) {
|
||||
file = getenv("OPENSSL_CONF");
|
||||
if (file)
|
||||
return OPENSSL_strdup(file);
|
||||
}
|
||||
|
||||
len = strlen(X509_get_default_cert_area());
|
||||
#ifndef OPENSSL_SYS_VMS
|
||||
|
@ -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) ||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
@ -384,6 +384,22 @@ will output:
|
||||
|
||||
showing that the OID "newoid1" has been added as "1.2.3.4.1".
|
||||
|
||||
=head1 ENVIRONMENT
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<OPENSSL_CONF>
|
||||
|
||||
The path to the config file.
|
||||
Ignored in set-user-ID and set-group-ID programs.
|
||||
|
||||
=item B<OPENSSL_ENGINES>
|
||||
|
||||
The path to the engines directory.
|
||||
Ignored in set-user-ID and set-group-ID programs.
|
||||
|
||||
=back
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Currently there is no way to include characters using the octal B<\nnn>
|
||||
|
Loading…
Reference in New Issue
Block a user