> This means you cannot pass an 'X509 **' as a 'char **'.
> Unfortunately 'X509 *' and 'char *' are not compatible types because
> 'X509' and 'char' are not compatible. They are not both unions, they
> are not both structures.


But you can pass 'X509 **' as 'void *'. So...
void x509func(void* p) { X509** pp = (X509**)p; ... }
void trampoline(void* p) { x509func(p); }
void caller(void) { X509* p; trampoline(&p); }

should (MUST?) work just fine.

/r$

--
STSM, Senior Security Architect
SOA Appliances
Application Integration Middleware

__________________________________________________ ____________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org