diff --git a/lib/getinfo.c b/lib/getinfo.c index 6f8ebb87e1fdae2e000881a994bcf31afb7c85f7..c8841637e5daf092f56c1271986899de223c5cf7 100644 --- a/lib/getinfo.c +++ b/lib/getinfo.c @@ -78,6 +78,11 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...) struct curl_slist **param_slistp=NULL; int type; + union { + struct curl_certinfo * to_certinfo; + struct curl_slist * to_slist; + } ptr; + if(!data) return CURLE_BAD_FUNCTION_ARGUMENT; @@ -220,7 +225,8 @@ CURLcode Curl_getinfo(struct SessionHandle *data, CURLINFO info, ...) case CURLINFO_CERTINFO: /* Return the a pointer to the certinfo struct. Not really an slist pointer but we can pretend it is here */ - *param_slistp = (struct curl_slist *)&data->info.certs; + ptr.to_certinfo = &data->info.certs; + *param_slistp = ptr.to_slist; break; default: return CURLE_BAD_FUNCTION_ARGUMENT;