In C:
if ( data != NULL && flags & ERR_TXT_STRING ) {
PRINT(data);
if ( flags & ERR_TXT_MALLOCED ) {
OPENSSL_free((void *)data);
}
}
> From: Adam M [mailto:[email protected]]
> Sent: Tuesday, January 28, 2014 5:47 PM
> To: [email protected]
>
> I'm reading the documentation for ERR_get_error_line_data() here:
> http://www.openssl.org/docs/crypto/ERR_get_error.html
>
> The comments say that 'data' is dynamically allocated with
> OPENSSL_malloc() if the ERR_TXT_MALLOCED bit is set in 'flags'. I
> presume this means that we need to call OPENSSL_free() to free 'data',
> but the documentation isn't clear on that.
>
> I'm running into two issues in this regard. For one, 'data' is a 'const
> char*', but OPENSSL_free() takes a 'void*', so we get a type mismatch.
> See my sample code here, which includes the compiler error message:
> http://pastebin.com/VNdkwf0G
>
> The second issue is that I've been looking around on the web (in
> particular on Ohloh) for usage of ERR_get_error_line_data(), and no one
> seems to be checking for the ERR_TXT_MALLOCED bit in 'flags'. Maybe
> doing so isn't necessary, but the documentation seems to suggest that
> it
> is.
>
> Can someone please help clarify what exactly to do here?
>
> Thanks,
> Adam
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [email protected]