aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>2023-05-16 10:24:35 +0200
committerDr. David von Oheimb <dev@ddvo.net>2023-05-25 09:04:35 +0200
commitb77826877be3bdd56e3e86887cb78ea010db90be (patch)
tree93b8c05b76cce887a3b60d4b0830e87c48c2e86b /apps
parentda7f81d39308f9ecab6fde1f9116ff673ef3f3b3 (diff)
downloadopenssl-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.c16
-rw-r--r--apps/include/apps.h2
-rw-r--r--apps/lib/apps.c13
-rw-r--r--apps/req.c18
4 files changed, 25 insertions, 24 deletions
diff --git a/apps/ca.c b/apps/ca.c
index 8bdbc9a1f0..751287eda8 100644
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -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,