From c75010080ad74d5353e560ae6adaabf40a1eafcd Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Fri, 18 Oct 2019 15:11:26 +0200 Subject: [PATCH] prf-plus: Fix a potential memory leak if get_bytes() fails --- src/libstrongswan/crypto/prf_plus.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libstrongswan/crypto/prf_plus.c b/src/libstrongswan/crypto/prf_plus.c index 7d2b5217c..4668f4968 100644 --- a/src/libstrongswan/crypto/prf_plus.c +++ b/src/libstrongswan/crypto/prf_plus.c @@ -103,12 +103,12 @@ METHOD(prf_plus_t, get_bytes, bool, METHOD(prf_plus_t, allocate_bytes, bool, private_prf_plus_t *this, size_t length, chunk_t *chunk) { - if (length) + *chunk = chunk_alloc(length); + if (!get_bytes(this, length, chunk->ptr)) { - *chunk = chunk_alloc(length); - return get_bytes(this, length, chunk->ptr); + chunk_free(chunk); + return FALSE; } - *chunk = chunk_empty; return TRUE; }