From e52a6989073bdb6f6ba5cd74e4f37dbd4dbfd575 Mon Sep 17 00:00:00 2001 From: Ayala Beker Date: Thu, 7 Apr 2016 13:31:00 +0300 Subject: [PATCH] RADIUS: Fix a possible memory leak on an error path Fix a possible memory leak in radius_msg_add_mppe_keys() if os_get_random() fails. Signed-off-by: Ayala Beker --- src/radius/radius.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/radius/radius.c b/src/radius/radius.c index da978db..7bc6f74 100644 --- a/src/radius/radius.c +++ b/src/radius/radius.c @@ -1199,8 +1199,10 @@ int radius_msg_add_mppe_keys(struct radius_msg *msg, vhdr = (struct radius_attr_vendor *) pos; vhdr->vendor_type = RADIUS_VENDOR_ATTR_MS_MPPE_SEND_KEY; pos = (u8 *) (vhdr + 1); - if (os_get_random((u8 *) &salt, sizeof(salt)) < 0) + if (os_get_random((u8 *) &salt, sizeof(salt)) < 0) { + os_free(buf); return 0; + } salt |= 0x8000; WPA_PUT_BE16(pos, salt); pos += 2; -- 2.1.4