mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 10:47:28 +02:00
Merge pull request #3145 from JacobBarthelmeh/Compatibility-Layer
sanity check on return value for wolfSSL_X509_NAME_ENTRY_get_object
This commit is contained in:
12
src/ssl.c
12
src/ssl.c
@ -37974,6 +37974,9 @@ err:
|
|||||||
|
|
||||||
e = &name->entry[i];
|
e = &name->entry[i];
|
||||||
obj = wolfSSL_X509_NAME_ENTRY_get_object(e);
|
obj = wolfSSL_X509_NAME_ENTRY_get_object(e);
|
||||||
|
if (obj == NULL) {
|
||||||
|
return BAD_FUNC_ARG;
|
||||||
|
}
|
||||||
|
|
||||||
XMEMCPY(fullName + *idx, "/", 1); *idx = *idx + 1;
|
XMEMCPY(fullName + *idx, "/", 1); *idx = *idx + 1;
|
||||||
sz = (int)XSTRLEN(obj->sName);
|
sz = (int)XSTRLEN(obj->sName);
|
||||||
@ -38011,6 +38014,8 @@ err:
|
|||||||
|
|
||||||
e = &name->entry[i];
|
e = &name->entry[i];
|
||||||
obj = wolfSSL_X509_NAME_ENTRY_get_object(e);
|
obj = wolfSSL_X509_NAME_ENTRY_get_object(e);
|
||||||
|
if (obj == NULL)
|
||||||
|
return BAD_FUNC_ARG;
|
||||||
|
|
||||||
totalLen += (int)XSTRLEN(obj->sName) + 2;/*+2 for '/' and '=' */
|
totalLen += (int)XSTRLEN(obj->sName) + 2;/*+2 for '/' and '=' */
|
||||||
totalLen += wolfSSL_ASN1_STRING_length(e->value);
|
totalLen += wolfSSL_ASN1_STRING_length(e->value);
|
||||||
@ -38022,8 +38027,11 @@ err:
|
|||||||
return MEMORY_E;
|
return MEMORY_E;
|
||||||
|
|
||||||
idx = 0;
|
idx = 0;
|
||||||
entryCount = 0;
|
entryCount = AddAllEntry(name, fullName, totalLen, &idx);
|
||||||
entryCount += AddAllEntry(name, fullName, totalLen, &idx);
|
if (entryCount < 0) {
|
||||||
|
XFREE(fullName, name->heap, DYNAMIC_TYPE_X509);
|
||||||
|
return entryCount;
|
||||||
|
}
|
||||||
|
|
||||||
if (name->dynamicName) {
|
if (name->dynamicName) {
|
||||||
XFREE(name->name, name->heap, DYNAMIC_TYPE_X509);
|
XFREE(name->name, name->heap, DYNAMIC_TYPE_X509);
|
||||||
|
Reference in New Issue
Block a user