diff options
| author | beck <> | 2014-04-26 18:56:38 +0000 |
|---|---|---|
| committer | beck <> | 2014-04-26 18:56:38 +0000 |
| commit | e7dbd7a1e2ad3e12dafa2919bc8603d60416ea4d (patch) | |
| tree | dff54039de6c4454b05953e2ce78edfc5693e6b5 /src/lib/libcrypto/dso | |
| parent | a1c73b72875dcb25545f111b3779cf0f0ebf9c88 (diff) | |
| download | openbsd-e7dbd7a1e2ad3e12dafa2919bc8603d60416ea4d.tar.gz openbsd-e7dbd7a1e2ad3e12dafa2919bc8603d60416ea4d.tar.bz2 openbsd-e7dbd7a1e2ad3e12dafa2919bc8603d60416ea4d.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 | ||
