summaryrefslogtreecommitdiffstats
path: root/crypto/err
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2001-03-12 18:07:20 +0000
committerBodo Möller <bodo@openssl.org>2001-03-12 18:07:20 +0000
commitf51cf14b85e489a8ab357fc16719efb711e76a1f (patch)
treee9b8a705f3fdeccc1d0be478586750a0ac71b366 /crypto/err
parent194dd04699f03af4cf7f7f88ecf31f243a19552b (diff)
fix memory leak in err.c
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)
{