It can be very dangerous to do this

File crypto.h
#define Malloc(num)     CRYPTO_malloc((int)num,__FILE__,__LINE__)
#define Realloc(addr,num) \
        CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__)
#define Remalloc(addr,num) \
        CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__)
#define FreeFunc        CRYPTO_free
#define Free(addr)      CRYPTO_free(addr)

If a user wants to define the functions Malloc, Realloc, Free etc...

Example, in the file Objidl.h  (visual studio)

MIDL_INTERFACE("00000002-0000-0000-C000-000000000046")
    IMalloc : public IUnknown
    {
    public:
        virtual void __RPC_FAR *STDMETHODCALLTYPE Alloc( 
            /* [in] */ ULONG cb) = 0;
        
        virtual void __RPC_FAR *STDMETHODCALLTYPE Realloc( 
            /* [in] */ void __RPC_FAR *pv,
            /* [in] */ ULONG cb) = 0;
        ....

After the preprocessor this file becomes: 
    struct __declspec(uuid("00000002-0000-0000-C000-000000000046"))
__declspec(novtable)
    IMalloc : public IUnknown
    {
    public:
        virtual void  *__stdcall Alloc( 
             ULONG cb) = 0;
        
        virtual void  *__stdcall 

CRYPTO_realloc((char *)void  *pv,(int)ULONG
cb,"D:\\core\\2.0\\CompilTools\\visualstudio\\3.0\\VC98\\INCLUDE\\objidl.h",
786) = 0;

And it doesn't compile :(

Each macro definition can be prefixed by "SSL_"

Xav.     
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to