I have found a problem in the function prototype typedefs for four
of the X509V3_EXT functions in crypto/x509v3/x509v3.h .
The parameter lists for the functions typdef'd (below) are left
undefined.  This causes problems when you crank up the
debug level on a C compiler or compile with mixed C++ code.

typedef char * (*X509V3_EXT_NEW)();
typedef void (*X509V3_EXT_FREE)();
typedef char * (*X509V3_EXT_D2I)();
typedef int (*X509V3_EXT_I2D)();

The problem is that one cannot "fix" this by simply adding
parameters to the prototypes because the parameter types
vary depending upon the call (i.e., BASIC_CONSTRAINTS_free()
takes a BASIC_CONSTRAINTS* while an ext_ku_free() takes
a STACK* ).  The solution is that all function pointers must have
the same calling sequence, e.g., void*.

Dan Lanz
CertCo, Inc.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to