APPS: replace awkward and error-prone pattern by calls to new app_conf_try_number()

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
(Merged from https://github.com/openssl/openssl/pull/20971)
This commit is contained in:
Dr. David von Oheimb 2023-05-16 10:24:35 +02:00 committed by Dr. David von Oheimb
parent da7f81d393
commit b77826877b
4 changed files with 25 additions and 24 deletions

View File

@ -886,10 +886,8 @@ end_of_options:
}
if (days == 0) {
if (!NCONF_get_number(conf, section, ENV_DEFAULT_DAYS, &days)) {
ERR_clear_error();
if (!app_conf_try_number(conf, section, ENV_DEFAULT_DAYS, &days))
days = 0;
}
}
if (enddate == NULL && days == 0) {
BIO_printf(bio_err, "cannot lookup how many days to certify for\n");
@ -1149,16 +1147,12 @@ end_of_options:
}
if (!crldays && !crlhours && !crlsec) {
if (!NCONF_get_number(conf, section,
ENV_DEFAULT_CRL_DAYS, &crldays)) {
ERR_clear_error();
if (!app_conf_try_number(conf, section,
ENV_DEFAULT_CRL_DAYS, &crldays))
crldays = 0;
}
if (!NCONF_get_number(conf, section,
ENV_DEFAULT_CRL_HOURS, &crlhours)) {
ERR_clear_error();
if (!app_conf_try_number(conf, section,
ENV_DEFAULT_CRL_HOURS, &crlhours))
crlhours = 0;
}
}
if ((crl_nextupdate == NULL) &&
(crldays == 0) && (crlhours == 0) && (crlsec == 0)) {

View File

@ -66,6 +66,8 @@ BIO *bio_open_owner(const char *filename, int format, int private);
BIO *bio_open_default(const char *filename, char mode, int format);
BIO *bio_open_default_quiet(const char *filename, char mode, int format);
char *app_conf_try_string(const CONF *cnf, const char *group, const char *name);
int app_conf_try_number(const CONF *conf, const char *group, const char *name,
long *result);
CONF *app_load_config_bio(BIO *in, const char *filename);
# define app_load_config(filename) app_load_config_internal(filename, 0)
# define app_load_config_quiet(filename) app_load_config_internal(filename, 1)

View File

@ -349,6 +349,19 @@ char *app_conf_try_string(const CONF *conf, const char *group, const char *name)
return res;
}
int app_conf_try_number(const CONF *conf, const char *group, const char *name,
long *result)
{
int ok;
ERR_set_mark();
ok = NCONF_get_number(conf, group, name, result);
if (!ok)
ERR_pop_to_mark();
else
ERR_clear_last_mark();
return ok;
}
CONF *app_load_config_bio(BIO *in, const char *filename)
{

View File

@ -608,7 +608,7 @@ int req_main(int argc, char **argv)
if (newreq && pkey == NULL) {
app_RAND_load_conf(req_conf, section);
if (!NCONF_get_number(req_conf, section, BITS, &newkey_len))
if (!app_conf_try_number(req_conf, section, BITS, &newkey_len))
newkey_len = DEFAULT_KEY_LENGTH;
genctx = set_keygen_ctx(keyalg, &keyalgstr, &newkey_len, gen_eng);
@ -1167,17 +1167,13 @@ static int prompt_info(X509_REQ *req,
if (!join(buf, sizeof(buf), v->name, "_min", "Name"))
return 0;
if (!NCONF_get_number(req_conf, dn_sect, buf, &n_min)) {
ERR_clear_error();
if (!app_conf_try_number(req_conf, dn_sect, buf, &n_min))
n_min = -1;
}
if (!join(buf, sizeof(buf), v->name, "_max", "Name"))
return 0;
if (!NCONF_get_number(req_conf, dn_sect, buf, &n_max)) {
ERR_clear_error();
if (!app_conf_try_number(req_conf, dn_sect, buf, &n_max))
n_max = -1;
}
if (!add_DN_object(subj, v->value, def, value, nid,
n_min, n_max, chtype, mval))
@ -1221,17 +1217,13 @@ static int prompt_info(X509_REQ *req,
if (!join(buf, sizeof(buf), type, "_min", "Name"))
return 0;
if (!NCONF_get_number(req_conf, attr_sect, buf, &n_min)) {
ERR_clear_error();
if (!app_conf_try_number(req_conf, attr_sect, buf, &n_min))
n_min = -1;
}
if (!join(buf, sizeof(buf), type, "_max", "Name"))
return 0;
if (!NCONF_get_number(req_conf, attr_sect, buf, &n_max)) {
ERR_clear_error();
if (!app_conf_try_number(req_conf, attr_sect, buf, &n_max))
n_max = -1;
}
if (!add_attribute_object(req,
v->value, def, value, nid, n_min,