summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/conf
diff options
context:
space:
mode:
authorbeck <>2014-04-26 18:56:38 +0000
committerbeck <>2014-04-26 18:56:38 +0000
commit47bb6e76785f0b1c4d19d8d0a02f3eb3813f96e2 (patch)
treedff54039de6c4454b05953e2ce78edfc5693e6b5 /src/lib/libcrypto/conf
parent8f710803a9e330d7e3f2e62116ae5b3fc02bd6cf (diff)
downloadopenbsd-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.c4
-rw-r--r--src/lib/libcrypto/conf/conf_lib.c2
-rw-r--r--src/lib/libcrypto/conf/conf_mod.c11
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