diff options
author | beck <> | 2014-04-26 18:56:38 +0000 |
---|---|---|
committer | beck <> | 2014-04-26 18:56:38 +0000 |
commit | 47bb6e76785f0b1c4d19d8d0a02f3eb3813f96e2 (patch) | |
tree | dff54039de6c4454b05953e2ce78edfc5693e6b5 /src/lib/libcrypto/conf | |
parent | 8f710803a9e330d7e3f2e62116ae5b3fc02bd6cf (diff) | |
download | openbsd-47bb6e76785f0b1c4d19d8d0a02f3eb3813f96e2.tar.gz openbsd-47bb6e76785f0b1c4d19d8d0a02f3eb3813f96e2.tar.bz2 openbsd-47bb6e76785f0b1c4d19d8d0a02f3eb3813f96e2.zip |
Replace all use of ERR_add_error_data with ERR_asprintf_error_data.
This avoids a lot of ugly gymnastics to do snprintfs before sending the
bag of strings to ERR, and eliminates at least one place in dso_dlfctn.c
where it was being called with the incorrect number of arguments and
using random things off the stack as addresses of strings.
ok krw@, jsing@
Diffstat (limited to 'src/lib/libcrypto/conf')
-rw-r--r-- | src/lib/libcrypto/conf/conf_def.c | 4 | ||||
-rw-r--r-- | src/lib/libcrypto/conf/conf_lib.c | 2 | ||||
-rw-r--r-- | src/lib/libcrypto/conf/conf_mod.c | 11 |
3 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/libcrypto/conf/conf_def.c b/src/lib/libcrypto/conf/conf_def.c index 22fe7a8f60..bc9f139e7e 100644 --- a/src/lib/libcrypto/conf/conf_def.c +++ b/src/lib/libcrypto/conf/conf_def.c | |||
@@ -218,7 +218,6 @@ def_load_bio(CONF *conf, BIO *in, long *line) | |||
218 | char *s, *p, *end; | 218 | char *s, *p, *end; |
219 | int again; | 219 | int again; |
220 | long eline = 0; | 220 | long eline = 0; |
221 | char btmp[DECIMAL_SIZE(eline) + 1]; | ||
222 | CONF_VALUE *v = NULL, *tv; | 221 | CONF_VALUE *v = NULL, *tv; |
223 | CONF_VALUE *sv = NULL; | 222 | CONF_VALUE *sv = NULL; |
224 | char *section = NULL, *buf; | 223 | char *section = NULL, *buf; |
@@ -428,8 +427,7 @@ err: | |||
428 | free(section); | 427 | free(section); |
429 | if (line != NULL) | 428 | if (line != NULL) |
430 | *line = eline; | 429 | *line = eline; |
431 | snprintf(btmp, sizeof btmp, "%ld", eline); | 430 | ERR_asprintf_error_data("line %ld", eline); |
432 | ERR_add_error_data(2, "line ", btmp); | ||
433 | if ((h != conf->data) && (conf->data != NULL)) { | 431 | if ((h != conf->data) && (conf->data != NULL)) { |
434 | CONF_free(conf->data); | 432 | CONF_free(conf->data); |
435 | conf->data = NULL; | 433 | conf->data = NULL; |
diff --git a/src/lib/libcrypto/conf/conf_lib.c b/src/lib/libcrypto/conf/conf_lib.c index 469af6e825..35bdda3d64 100644 --- a/src/lib/libcrypto/conf/conf_lib.c +++ b/src/lib/libcrypto/conf/conf_lib.c | |||
@@ -329,7 +329,7 @@ NCONF_get_string(const CONF *conf, const char *group, const char *name) | |||
329 | return NULL; | 329 | return NULL; |
330 | } | 330 | } |
331 | CONFerr(CONF_F_NCONF_GET_STRING, CONF_R_NO_VALUE); | 331 | CONFerr(CONF_F_NCONF_GET_STRING, CONF_R_NO_VALUE); |
332 | ERR_add_error_data(4, "group=", group, " name=", name); | 332 | ERR_asprintf_error_data("group=%s name=%s", group, name); |
333 | return NULL; | 333 | return NULL; |
334 | } | 334 | } |
335 | 335 | ||
diff --git a/src/lib/libcrypto/conf/conf_mod.c b/src/lib/libcrypto/conf/conf_mod.c index 80266e43d8..b574104791 100644 --- a/src/lib/libcrypto/conf/conf_mod.c +++ b/src/lib/libcrypto/conf/conf_mod.c | |||
@@ -211,7 +211,7 @@ module_run(const CONF *cnf, char *name, char *value, unsigned long flags) | |||
211 | if (!md) { | 211 | if (!md) { |
212 | if (!(flags & CONF_MFLAGS_SILENT)) { | 212 | if (!(flags & CONF_MFLAGS_SILENT)) { |
213 | CONFerr(CONF_F_MODULE_RUN, CONF_R_UNKNOWN_MODULE_NAME); | 213 | CONFerr(CONF_F_MODULE_RUN, CONF_R_UNKNOWN_MODULE_NAME); |
214 | ERR_add_error_data(2, "module=", name); | 214 | ERR_asprintf_error_data("module=%s", name); |
215 | } | 215 | } |
216 | return -1; | 216 | return -1; |
217 | } | 217 | } |
@@ -220,12 +220,11 @@ module_run(const CONF *cnf, char *name, char *value, unsigned long flags) | |||
220 | 220 | ||
221 | if (ret <= 0) { | 221 | if (ret <= 0) { |
222 | if (!(flags & CONF_MFLAGS_SILENT)) { | 222 | if (!(flags & CONF_MFLAGS_SILENT)) { |
223 | char rcode[DECIMAL_SIZE(ret) + 1]; | ||
224 | CONFerr(CONF_F_MODULE_RUN, | 223 | CONFerr(CONF_F_MODULE_RUN, |
225 | CONF_R_MODULE_INITIALIZATION_ERROR); | 224 | CONF_R_MODULE_INITIALIZATION_ERROR); |
226 | snprintf(rcode, sizeof rcode, "%-8d", ret); | 225 | ERR_asprintf_error_data |
227 | ERR_add_error_data(6, "module=", name, ", value=", | 226 | ("module=%s, value=%s, retcode=%-8d", |
228 | value, ", retcode=", rcode); | 227 | name, value, ret); |
229 | } | 228 | } |
230 | } | 229 | } |
231 | 230 | ||
@@ -272,7 +271,7 @@ err: | |||
272 | if (dso) | 271 | if (dso) |
273 | DSO_free(dso); | 272 | DSO_free(dso); |
274 | CONFerr(CONF_F_MODULE_LOAD_DSO, errcode); | 273 | CONFerr(CONF_F_MODULE_LOAD_DSO, errcode); |
275 | ERR_add_error_data(4, "module=", name, ", path=", path); | 274 | ERR_asprintf_error_data("module=%s, path=%s", name, path); |
276 | return NULL; | 275 | return NULL; |
277 | } | 276 | } |
278 | 277 | ||