Set authkey to NULL and check malloc return value.

This commit is contained in:
Kurt Roeckx 2014-05-01 13:10:01 +02:00 committed by Matt Caswell
parent c622649513
commit 99a3d167d9

View file

@ -1381,7 +1381,7 @@ static long dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr)
bio_dgram_sctp_data *data = NULL;
socklen_t sockopt_len = 0;
struct sctp_authkeyid authkeyid;
struct sctp_authkey *authkey;
struct sctp_authkey *authkey = NULL;
data = (bio_dgram_sctp_data *)b->ptr;
@ -1436,6 +1436,11 @@ static long dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr)
/* Add new key */
sockopt_len = sizeof(struct sctp_authkey) + 64 * sizeof(uint8_t);
authkey = OPENSSL_malloc(sockopt_len);
if (authkey == NULL)
{
ret = -1;
break;
}
memset(authkey, 0x00, sockopt_len);
authkey->sca_keynumber = authkeyid.scact_keynumber + 1;
#ifndef __FreeBSD__
@ -1448,6 +1453,7 @@ static long dgram_sctp_ctrl(BIO *b, int cmd, long num, void *ptr)
ret = setsockopt(b->num, IPPROTO_SCTP, SCTP_AUTH_KEY, authkey, sockopt_len);
OPENSSL_free(authkey);
authkey = NULL;
if (ret < 0) break;
/* Reset active key */