Merge pull request #1723 from kaleb-himes/overhead-avoidance

avoid overhead call to alloc and free when sigSz invalid
This commit is contained in:
David Garske
2018-07-31 08:14:49 -07:00
committed by GitHub

View File

@ -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;