From: Tobias Brunner Date: Fri, 18 Oct 2019 13:11:26 +0000 (+0200) Subject: prf-plus: Fix a potential memory leak if get_bytes() fails X-Git-Tag: 5.8.2dr2~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c75010080ad74d5353e560ae6adaabf40a1eafcd;p=thirdparty%2Fstrongswan.git prf-plus: Fix a potential memory leak if get_bytes() fails --- diff --git a/src/libstrongswan/crypto/prf_plus.c b/src/libstrongswan/crypto/prf_plus.c index 7d2b5217cd..4668f49686 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; }