Use safer sizeof variant in malloc
For a local variable: TYPE *p; Allocations like this are "risky": p = OPENSSL_malloc(sizeof(TYPE)); if the type of p changes, and the malloc call isn't updated, you could get memory corruption. Instead do this: p = OPENSSL_malloc(sizeof(*p)); Also fixed a few memset() calls that I noticed while doing this. Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
@@ -182,9 +182,8 @@ void ssl_cert_set_default_md(CERT *cert)
|
||||
|
||||
CERT *ssl_cert_new(void)
|
||||
{
|
||||
CERT *ret;
|
||||
CERT *ret = OPENSSL_malloc(sizeof(*ret));
|
||||
|
||||
ret = OPENSSL_malloc(sizeof(CERT));
|
||||
if (ret == NULL) {
|
||||
SSLerr(SSL_F_SSL_CERT_NEW, ERR_R_MALLOC_FAILURE);
|
||||
return (NULL);
|
||||
@@ -202,10 +201,9 @@ CERT *ssl_cert_new(void)
|
||||
|
||||
CERT *ssl_cert_dup(CERT *cert)
|
||||
{
|
||||
CERT *ret;
|
||||
CERT *ret = OPENSSL_malloc(sizeof(*ret));
|
||||
int i;
|
||||
|
||||
ret = OPENSSL_malloc(sizeof(CERT));
|
||||
if (ret == NULL) {
|
||||
SSLerr(SSL_F_SSL_CERT_DUP, ERR_R_MALLOC_FAILURE);
|
||||
return (NULL);
|
||||
@@ -577,13 +575,13 @@ SESS_CERT *ssl_sess_cert_new(void)
|
||||
{
|
||||
SESS_CERT *ret;
|
||||
|
||||
ret = OPENSSL_malloc(sizeof *ret);
|
||||
ret = OPENSSL_malloc(sizeof(*ret));
|
||||
if (ret == NULL) {
|
||||
SSLerr(SSL_F_SSL_SESS_CERT_NEW, ERR_R_MALLOC_FAILURE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(ret, 0, sizeof *ret);
|
||||
memset(ret, 0, sizeof(*ret));
|
||||
ret->peer_key = &(ret->peer_pkeys[SSL_PKEY_RSA_ENC]);
|
||||
ret->references = 1;
|
||||
|
||||
|
Reference in New Issue
Block a user