summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/dso
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/dso
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/dso')
-rw-r--r--src/lib/libcrypto/dso/dso_dlfcn.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/libcrypto/dso/dso_dlfcn.c b/src/lib/libcrypto/dso/dso_dlfcn.c
index ea4e4935aa..6cf9ab2667 100644
--- a/src/lib/libcrypto/dso/dso_dlfcn.c
+++ b/src/lib/libcrypto/dso/dso_dlfcn.c
@@ -140,7 +140,8 @@ dlfcn_load(DSO *dso)
140 ptr = dlopen(filename, flags); 140 ptr = dlopen(filename, flags);
141 if (ptr == NULL) { 141 if (ptr == NULL) {
142 DSOerr(DSO_F_DLFCN_LOAD, DSO_R_LOAD_FAILED); 142 DSOerr(DSO_F_DLFCN_LOAD, DSO_R_LOAD_FAILED);
143 ERR_add_error_data(4, "filename(", filename, "): ", dlerror()); 143 ERR_asprintf_error_data("filename(%s): %s", filename,
144 dlerror());
144 goto err; 145 goto err;
145 } 146 }
146 if (!sk_void_push(dso->meth_data, (char *)ptr)) { 147 if (!sk_void_push(dso->meth_data, (char *)ptr)) {
@@ -204,7 +205,7 @@ dlfcn_bind_var(DSO *dso, const char *symname)
204 sym = dlsym(ptr, symname); 205 sym = dlsym(ptr, symname);
205 if (sym == NULL) { 206 if (sym == NULL) {
206 DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_SYM_FAILURE); 207 DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_SYM_FAILURE);
207 ERR_add_error_data(4, "symname(", symname, "): ", dlerror()); 208 ERR_asprintf_error_data("symname(%s): %s", symname, dlerror());
208 return (NULL); 209 return (NULL);
209 } 210 }
210 return (sym); 211 return (sym);
@@ -235,7 +236,7 @@ dlfcn_bind_func(DSO *dso, const char *symname)
235 u.dlret = dlsym(ptr, symname); 236 u.dlret = dlsym(ptr, symname);
236 if (u.dlret == NULL) { 237 if (u.dlret == NULL) {
237 DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_SYM_FAILURE); 238 DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_SYM_FAILURE);
238 ERR_add_error_data(4, "symname(", symname, "): ", dlerror()); 239 ERR_asprintf_error_data("symname(%s): %s", symname, dlerror());
239 return (NULL); 240 return (NULL);
240 } 241 }
241 return u.sym; 242 return u.sym;
@@ -348,7 +349,7 @@ dlfcn_pathbyaddr(void *addr, char *path, int sz)
348 return len; 349 return len;
349 } 350 }
350 351
351 ERR_add_error_data(4, "dlfcn_pathbyaddr(): ", dlerror()); 352 ERR_asprintf_error_data("dlfcn_pathbyaddr(): %s", dlerror());
352 return -1; 353 return -1;
353} 354}
354 355