From: Dr. Stephen Henson Date: Sun, 4 Oct 2009 14:02:03 +0000 (+0000) Subject: Prevent aliasing warning X-Git-Tag: OpenSSL_1_0_0-beta4~50 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=af8f2bb1741b1033a9866f450d5f60c82eef93ce;p=openssl Prevent aliasing warning --- diff --git a/crypto/dso/dso_dlfcn.c b/crypto/dso/dso_dlfcn.c index ed0b2c80df..7da3f78928 100644 --- a/crypto/dso/dso_dlfcn.c +++ b/crypto/dso/dso_dlfcn.c @@ -257,7 +257,10 @@ static void *dlfcn_bind_var(DSO *dso, const char *symname) static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname) { void *ptr; - DSO_FUNC_TYPE sym, *tsym = &sym; + union { + DSO_FUNC_TYPE sym; + void *dlret; + } u; if((dso == NULL) || (symname == NULL)) { @@ -275,14 +278,14 @@ static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname) DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_NULL_HANDLE); return(NULL); } - *(void **)(tsym) = dlsym(ptr, symname); - if(sym == NULL) + 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()); return(NULL); } - return(sym); + return u.sym; } static char *dlfcn_merger(DSO *dso, const char *filespec1,