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/dso | |
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/dso')
-rw-r--r-- | src/lib/libcrypto/dso/dso_dlfcn.c | 9 |
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 | ||