From e7dbd7a1e2ad3e12dafa2919bc8603d60416ea4d Mon Sep 17 00:00:00 2001 From: beck <> Date: Sat, 26 Apr 2014 18:56:38 +0000 Subject: 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@ --- src/lib/libcrypto/dso/dso_dlfcn.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/lib/libcrypto/dso') 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) ptr = dlopen(filename, flags); if (ptr == NULL) { DSOerr(DSO_F_DLFCN_LOAD, DSO_R_LOAD_FAILED); - ERR_add_error_data(4, "filename(", filename, "): ", dlerror()); + ERR_asprintf_error_data("filename(%s): %s", filename, + dlerror()); goto err; } if (!sk_void_push(dso->meth_data, (char *)ptr)) { @@ -204,7 +205,7 @@ dlfcn_bind_var(DSO *dso, const char *symname) sym = dlsym(ptr, symname); if (sym == NULL) { DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_SYM_FAILURE); - ERR_add_error_data(4, "symname(", symname, "): ", dlerror()); + ERR_asprintf_error_data("symname(%s): %s", symname, dlerror()); return (NULL); } return (sym); @@ -235,7 +236,7 @@ dlfcn_bind_func(DSO *dso, const char *symname) u.dlret = dlsym(ptr, symname); if (u.dlret == NULL) { DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_SYM_FAILURE); - ERR_add_error_data(4, "symname(", symname, "): ", dlerror()); + ERR_asprintf_error_data("symname(%s): %s", symname, dlerror()); return (NULL); } return u.sym; @@ -348,7 +349,7 @@ dlfcn_pathbyaddr(void *addr, char *path, int sz) return len; } - ERR_add_error_data(4, "dlfcn_pathbyaddr(): ", dlerror()); + ERR_asprintf_error_data("dlfcn_pathbyaddr(): %s", dlerror()); return -1; } -- cgit v1.2.3-55-g6feb