diff options
author | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2023-05-16 10:24:35 +0200 |
---|---|---|
committer | Dr. David von Oheimb <dev@ddvo.net> | 2023-05-25 09:04:35 +0200 |
commit | b77826877be3bdd56e3e86887cb78ea010db90be (patch) | |
tree | 93b8c05b76cce887a3b60d4b0830e87c48c2e86b /apps | |
parent | da7f81d39308f9ecab6fde1f9116ff673ef3f3b3 (diff) | |
download | openssl-b77826877be3bdd56e3e86887cb78ea010db90be.tar.gz |
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)
Diffstat (limited to 'apps')
-rw-r--r-- | apps/ca.c | 16 | ||||
-rw-r--r-- | apps/include/apps.h | 2 | ||||
-rw-r--r-- | apps/lib/apps.c | 13 | ||||
-rw-r--r-- | apps/req.c | 18 |
4 files changed, 25 insertions, 24 deletions
@@ -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)) { diff --git a/apps/include/apps.h b/apps/include/apps.h index c9e0d440e8..62b4d19ae3 100644 --- a/apps/include/apps.h +++ b/apps/include/apps.h @@ -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) diff --git a/apps/lib/apps.c b/apps/lib/apps.c index bfa983a351..79980257bd 100644 --- a/apps/lib/apps.c +++ b/apps/lib/apps.c @@ -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) { diff --git a/apps/req.c b/apps/req.c index 11ecf6cad7..59ed6ebaa2 100644 --- a/apps/req.c +++ b/apps/req.c @@ -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, |