forked from wolfSSL/wolfssl
static analysis tests for memory management
This commit is contained in:
17
src/ocsp.c
17
src/ocsp.c
@@ -898,21 +898,26 @@ int wolfSSL_i2d_OCSP_REQUEST_bio(WOLFSSL_BIO* out,
|
|||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
|
|
||||||
size = wolfSSL_i2d_OCSP_REQUEST(req, NULL);
|
size = wolfSSL_i2d_OCSP_REQUEST(req, NULL);
|
||||||
if (size > 0)
|
if (size > 0) {
|
||||||
data = (unsigned char*) XMALLOC(size,NULL,DYNAMIC_TYPE_TMP_BUFFER);
|
data = (unsigned char*) XMALLOC(size, out->heap,
|
||||||
if (data != NULL)
|
DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data != NULL) {
|
||||||
size = wolfSSL_i2d_OCSP_REQUEST(req, &data);
|
size = wolfSSL_i2d_OCSP_REQUEST(req, &data);
|
||||||
|
}
|
||||||
|
|
||||||
if (size <= 0) {
|
if (size <= 0) {
|
||||||
XFREE(data,NULL,DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(data, out->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wolfSSL_BIO_write(out,data,size) == (int)size) {
|
if (wolfSSL_BIO_write(out, data, size) == (int)size) {
|
||||||
XFREE(data,NULL,DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(data, out->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return WOLFSSL_SUCCESS;
|
return WOLFSSL_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XFREE(data, out->heap, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
}
|
}
|
||||||
#endif /* OPENSSL_ALL || APACHE_HTTPD */
|
#endif /* OPENSSL_ALL || APACHE_HTTPD */
|
||||||
|
18
src/ssl.c
18
src/ssl.c
@@ -19706,7 +19706,7 @@ WOLFSSL_EVP_PKEY* wolfSSL_X509_get_pubkey(WOLFSSL_X509* x509)
|
|||||||
x509->pubKey.length, x509->heap,
|
x509->pubKey.length, x509->heap,
|
||||||
DYNAMIC_TYPE_PUBLIC_KEY);
|
DYNAMIC_TYPE_PUBLIC_KEY);
|
||||||
if (key->pkey.ptr == NULL) {
|
if (key->pkey.ptr == NULL) {
|
||||||
XFREE(key, x509->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
wolfSSL_EVP_PKEY_free(key);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
XMEMCPY(key->pkey.ptr, x509->pubKey.buffer, x509->pubKey.length);
|
XMEMCPY(key->pkey.ptr, x509->pubKey.buffer, x509->pubKey.length);
|
||||||
@@ -19722,16 +19722,14 @@ WOLFSSL_EVP_PKEY* wolfSSL_X509_get_pubkey(WOLFSSL_X509* x509)
|
|||||||
key->ownRsa = 1;
|
key->ownRsa = 1;
|
||||||
key->rsa = wolfSSL_RSA_new();
|
key->rsa = wolfSSL_RSA_new();
|
||||||
if (key->rsa == NULL) {
|
if (key->rsa == NULL) {
|
||||||
XFREE(key, x509->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
wolfSSL_EVP_PKEY_free(key);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wolfSSL_RSA_LoadDer_ex(key->rsa,
|
if (wolfSSL_RSA_LoadDer_ex(key->rsa,
|
||||||
(const unsigned char*)key->pkey.ptr, key->pkey_sz,
|
(const unsigned char*)key->pkey.ptr, key->pkey_sz,
|
||||||
WOLFSSL_RSA_LOAD_PUBLIC) != SSL_SUCCESS) {
|
WOLFSSL_RSA_LOAD_PUBLIC) != SSL_SUCCESS) {
|
||||||
wolfSSL_RSA_free(key->rsa);
|
wolfSSL_EVP_PKEY_free(key);
|
||||||
key->rsa = NULL;
|
|
||||||
XFREE(key, x509->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19745,7 +19743,7 @@ WOLFSSL_EVP_PKEY* wolfSSL_X509_get_pubkey(WOLFSSL_X509* x509)
|
|||||||
key->ownEcc = 1;
|
key->ownEcc = 1;
|
||||||
key->ecc = wolfSSL_EC_KEY_new();
|
key->ecc = wolfSSL_EC_KEY_new();
|
||||||
if (key->ecc == NULL || key->ecc->internal == NULL) {
|
if (key->ecc == NULL || key->ecc->internal == NULL) {
|
||||||
XFREE(key, x509->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
wolfSSL_EVP_PKEY_free(key);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19754,17 +19752,13 @@ WOLFSSL_EVP_PKEY* wolfSSL_X509_get_pubkey(WOLFSSL_X509* x509)
|
|||||||
if (wc_EccPublicKeyDecode((const unsigned char*)key->pkey.ptr,
|
if (wc_EccPublicKeyDecode((const unsigned char*)key->pkey.ptr,
|
||||||
&idx, (ecc_key*)key->ecc->internal, key->pkey_sz) < 0) {
|
&idx, (ecc_key*)key->ecc->internal, key->pkey_sz) < 0) {
|
||||||
WOLFSSL_MSG("wc_EccPublicKeyDecode failed");
|
WOLFSSL_MSG("wc_EccPublicKeyDecode failed");
|
||||||
wolfSSL_EC_KEY_free(key->ecc);
|
wolfSSL_EVP_PKEY_free(key);
|
||||||
key->ecc = NULL;
|
|
||||||
XFREE(key, x509->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SetECKeyExternal(key->ecc) != SSL_SUCCESS) {
|
if (SetECKeyExternal(key->ecc) != SSL_SUCCESS) {
|
||||||
WOLFSSL_MSG("SetECKeyExternal failed");
|
WOLFSSL_MSG("SetECKeyExternal failed");
|
||||||
wolfSSL_EC_KEY_free(key->ecc);
|
wolfSSL_EVP_PKEY_free(key);
|
||||||
key->ecc = NULL;
|
|
||||||
XFREE(key, x509->heap, DYNAMIC_TYPE_PUBLIC_KEY);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user