On Fri, 13 Apr 2012 17:02:07 +0200, Andy Polyakov via RT <[email protected]> wrote:

2) Structure x509_lookup_method_st aka X509_LOOKUP_METHOD has a member
called "free". It conflicts with MS Visual Studio memory debugger. When
memory debugger is enabled, it defines the following:

        #define   free(p)               _free_dbg(p, _NORMAL_BLOCK)

And compilation fails. The patch renames "free" to "free_item", analogous
to "new_item" member in the same structure.

Renaming structure members in released code is not desirable. How about

--- crypto/x509/x509_lu.c       19 Feb 2010 18:27:07 -0000      1.34
+++ crypto/x509/x509_lu.c       13 Apr 2012 14:58:30 -0000
@@ -87,7 +87,7 @@
        if (ctx == NULL) return;
        if (    (ctx->method != NULL) &&
                (ctx->method->free != NULL))
-               ctx->method->free(ctx);
+               (*ctx->method->free)(ctx);
        OPENSSL_free(ctx);
        }

instead?

Yes, it seems to work.

I couldn't check it with the MSDEV memory debugger, but I've made a simple testing patch (attached) and tried it. It compiled successfully both by GCC on Linux and by MSDEV on Windows.

--
Alexei.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to