ERR: re-use the err_data field when possible
authorRichard Levitte <levitte@openssl.org>
Thu, 25 Jul 2019 15:51:30 +0000 (17:51 +0200)
committerRichard Levitte <levitte@openssl.org>
Tue, 30 Jul 2019 05:07:01 +0000 (07:07 +0200)
commit10f8b36874fca928c3f41834babac8ee94dd3f09
treef145dcea1cfc1c3bbce0071664c61dea25138e26
parente9a5932d04f6b7dd25b39a8ff9dc162d64a78c22
ERR: re-use the err_data field when possible

To deallocate the err_data field and then allocating it again might be
a waste of processing, but may also be a source of errors when memory
is scarce.  While we normally tolerate that, the ERR sub-system is an
exception and we need to pay closer attention to how we handle memory.

This adds a new err_data flag, ERR_TXT_IGNORE, which means that even
if there is err_data memory allocated, its contents should be ignored.
Deallocation of the err_data field is much more selective, aand should
only happen when ERR_free_state() is called.

Fixes #9458

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9459)
crypto/err/err.c
include/openssl/err.h