forked from wolfSSL/wolfssl
Merge pull request #1723 from kaleb-himes/overhead-avoidance
avoid overhead call to alloc and free when sigSz invalid
This commit is contained in:
10
src/ssl.c
10
src/ssl.c
@ -16843,10 +16843,16 @@ WOLFSSL_EVP_PKEY* wolfSSL_X509_get_pubkey(WOLFSSL_X509* x509)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sigSz = (int)x509->sig.length;
|
sigSz = (int)x509->sig.length;
|
||||||
sig = (unsigned char*)XMALLOC(sigSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
if (sigSz <= 0) {
|
||||||
if (sig == NULL || sigSz <= 0) {
|
/* if sigSz invalid return here to avoid overhead of malloc */
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sig = (unsigned char*)XMALLOC(sigSz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
|
if (sig == NULL) {
|
||||||
|
return WOLFSSL_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
if (wolfSSL_X509_get_signature(x509, sig, &sigSz) <= 0) {
|
if (wolfSSL_X509_get_signature(x509, sig, &sigSz) <= 0) {
|
||||||
XFREE(sig, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
XFREE(sig, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
|
Reference in New Issue
Block a user