fix for init of renegotiation and fix for compiler warnings

pull/3122/head
Jacob Barthelmeh 2020-07-13 00:31:40 -06:00
parent eec5f4a109
commit d880d59974
3 changed files with 15 additions and 9 deletions

View File

@ -9506,6 +9506,11 @@ int CopyDecodedToX509(WOLFSSL_X509* x509, DecodedCert* dCert)
dCert->subjectCNLen < 0) dCert->subjectCNLen < 0)
return BAD_FUNC_ARG; return BAD_FUNC_ARG;
if (x509->issuer.name == NULL || x509->subject.name == NULL) {
WOLFSSL_MSG("Either init was not called on X509 or programming error");
return BAD_FUNC_ARG;
}
x509->version = dCert->version + 1; x509->version = dCert->version + 1;
XSTRNCPY(x509->issuer.name, dCert->issuer, ASN_NAME_MAX); XSTRNCPY(x509->issuer.name, dCert->issuer, ASN_NAME_MAX);
@ -9513,7 +9518,8 @@ int CopyDecodedToX509(WOLFSSL_X509* x509, DecodedCert* dCert)
x509->issuer.sz = (int)XSTRLEN(x509->issuer.name) + 1; x509->issuer.sz = (int)XSTRLEN(x509->issuer.name) + 1;
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
if (dCert->issuerName != NULL) { if (dCert->issuerName != NULL) {
wolfSSL_X509_set_issuer_name(x509, dCert->issuerName); wolfSSL_X509_set_issuer_name(x509,
(WOLFSSL_X509_NAME*)dCert->issuerName);
x509->issuer.x509 = x509; x509->issuer.x509 = x509;
} }
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */ #endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
@ -9523,7 +9529,8 @@ int CopyDecodedToX509(WOLFSSL_X509* x509, DecodedCert* dCert)
x509->subject.sz = (int)XSTRLEN(x509->subject.name) + 1; x509->subject.sz = (int)XSTRLEN(x509->subject.name) + 1;
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
if (dCert->subjectName != NULL) { if (dCert->subjectName != NULL) {
wolfSSL_X509_set_subject_name(x509, dCert->subjectName); wolfSSL_X509_set_subject_name(x509,
(WOLFSSL_X509_NAME*)dCert->subjectName);
x509->subject.x509 = x509; x509->subject.x509 = x509;
} }
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */ #endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
@ -11207,6 +11214,7 @@ int ProcessPeerCerts(WOLFSSL* ssl, byte* input, word32* inOutIdx,
ssl->secure_renegotiation->enabled) { ssl->secure_renegotiation->enabled) {
/* free old peer cert */ /* free old peer cert */
FreeX509(&ssl->peerCert); FreeX509(&ssl->peerCert);
InitX509(&ssl->peerCert, 0, ssl->heap);
} }
#endif #endif

View File

@ -37999,11 +37999,8 @@ err:
* returns 0 on success */ * returns 0 on success */
static int RebuildFullName(WOLFSSL_X509_NAME* name) static int RebuildFullName(WOLFSSL_X509_NAME* name)
{ {
int totalLen = 0; int totalLen = 0, i, idx, entryCount = 0;
int i;
char* fullName; char* fullName;
int idx;
int entryCount = 0;
if (name == NULL) if (name == NULL)
return BAD_FUNC_ARG; return BAD_FUNC_ARG;
@ -38016,7 +38013,7 @@ 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);
totalLen += 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);
} }
} }
@ -47420,6 +47417,7 @@ static int wolfSSL_X509_NAME_copy(WOLFSSL_X509_NAME* from,
wolfSSL_X509_NAME_add_entry(to, ne, i, 1); wolfSSL_X509_NAME_add_entry(to, ne, i, 1);
} }
to->entrySz = from->entrySz; to->entrySz = from->entrySz;
(void)heap;
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }

View File

@ -5045,9 +5045,9 @@ void FreeDecodedCert(DecodedCert* cert)
#endif /* WOLFSSL_SEP */ #endif /* WOLFSSL_SEP */
#if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL)
if (cert->issuerName != NULL) if (cert->issuerName != NULL)
wolfSSL_X509_NAME_free(cert->issuerName); wolfSSL_X509_NAME_free((WOLFSSL_X509_NAME*)cert->issuerName);
if (cert->subjectName != NULL) if (cert->subjectName != NULL)
wolfSSL_X509_NAME_free(cert->subjectName); wolfSSL_X509_NAME_free((WOLFSSL_X509_NAME*)cert->subjectName);
#endif /* OPENSSL_EXTRA */ #endif /* OPENSSL_EXTRA */
#ifdef WOLFSSL_RENESAS_TSIP_TLS #ifdef WOLFSSL_RENESAS_TSIP_TLS
if (cert->tsip_encRsaKeyIdx != NULL) if (cert->tsip_encRsaKeyIdx != NULL)