From: Richard Levitte Date: Thu, 31 May 2018 04:51:25 +0000 (+0200) Subject: apps: when the 'compat' nameopt has been set, leave it be X-Git-Tag: OpenSSL_1_0_2p~44 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=af21f71e7c59474271f0c24d58f212fad4032e3a;p=oweals%2Fopenssl.git apps: when the 'compat' nameopt has been set, leave it be XN_FLAG_COMPAT has a unique property, its zero for value. This means it needs special treatment; if it has been set (which can only be determined indirectly) and set alone (*), no other flags should be set. (*) if any other nameopt flag has been set by the user, compatibility mode is blown away. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/6382) (cherry picked from commit 3190d1dca43ecfd748c06aa06752de06af3768b9) --- diff --git a/apps/apps.c b/apps/apps.c index c5a5152295..07ffad1d0b 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -1359,7 +1359,8 @@ int set_name_ex(unsigned long *flags, const char *arg) }; if (set_multi_opts(flags, arg, ex_tbl) == 0) return 0; - if ((*flags & XN_FLAG_SEP_MASK) == 0) + if (*flags != XN_FLAG_COMPAT + && (*flags & XN_FLAG_SEP_MASK) == 0) *flags |= XN_FLAG_SEP_CPLUS_SPC; return 1; }