summaryrefslogtreecommitdiffstats
path: root/crypto/err
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/err')
-rw-r--r--crypto/err/err.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/crypto/err/err.c b/crypto/err/err.c
index 145fdc58d1..91b0295fb5 100644
--- a/crypto/err/err.c
+++ b/crypto/err/err.c
@@ -466,7 +466,15 @@ static unsigned long get_error_values(int inc, const char **file, int *line,
}
}
- if (data != NULL)
+ if (data == NULL)
+ {
+ if (inc && (es->err_data[i] != NULL) && (es->err_data_flags[i] & ERR_TXT_MALLOCED))
+ {
+ OPENSSL_free(es->err_data[i]);
+ es->err_data[i] = NULL;
+ }
+ }
+ else
{
if (es->err_data[i] == NULL)
{