Skip to content

Commit b00943c

Browse files
committed
ssl: fix miscellaneous issues found in review.
1 parent 793608e commit b00943c

5 files changed

Lines changed: 14 additions & 4 deletions

File tree

src/ssl_api_cert.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2836,6 +2836,11 @@ static WOLF_STACK_OF(WOLFSSL_X509)* CreatePeerCertChain(const WOLFSSL* ssl,
28362836
return NULL;
28372837

28382838
sk = wolfSSL_sk_X509_new_null();
2839+
if (sk == NULL) {
2840+
WOLFSSL_MSG("Error Creating sk");
2841+
return NULL;
2842+
}
2843+
28392844
for (i = 0; i < ssl->session->chain.count; i++) {
28402845
x509 = wolfSSL_X509_new_ex(ssl->heap);
28412846
if (x509 == NULL) {

src/ssl_api_pk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2858,7 +2858,7 @@ int wolfSSL_CTX_set_dh_auto(WOLFSSL_CTX* ctx, int onoff)
28582858
WOLFSSL_MSG("wc_SrpSetPassword failed.");
28592859
return WOLFSSL_FAILURE;
28602860
}
2861-
XFREE(ctx->srp_password, NULL, DYNAMIC_TYPE_SRP);
2861+
XFREE(ctx->srp_password, ctx->heap, DYNAMIC_TYPE_SRP);
28622862
ctx->srp_password = NULL;
28632863
} else {
28642864
/* save password for wolfSSL_set_srp_username */

src/ssl_api_rw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@ int wolfSSL_recv(WOLFSSL* ssl, void* data, int sz, int flags)
583583
int wolfSSL_SendUserCanceled(WOLFSSL* ssl)
584584
{
585585
int ret = WC_NO_ERR_TRACE(WOLFSSL_FAILURE);
586-
WOLFSSL_ENTER("wolfSSL_recv");
586+
WOLFSSL_ENTER("wolfSSL_SendUserCanceled");
587587

588588
if (ssl != NULL) {
589589
ssl->error = SendAlert(ssl, alert_warning, user_canceled);

src/ssl_asn1.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5855,7 +5855,7 @@ int wc_OBJ_sn2nid(const char *sn)
58555855
static int wolfssl_obj2txt_numeric(char *buf, int bufLen,
58565856
const WOLFSSL_ASN1_OBJECT *a)
58575857
{
5858-
int bufSz;
5858+
int bufSz;
58595859
int length;
58605860
word32 idx = 0;
58615861
byte tag;
@@ -5874,11 +5874,12 @@ int wc_OBJ_sn2nid(const char *sn)
58745874
return ASN_PARSE_E;
58755875
}
58765876

5877+
/* save an extra byte for null term. */
58775878
if (bufLen < MAX_OID_STRING_SZ) {
58785879
bufSz = bufLen - 1;
58795880
}
58805881
else {
5881-
bufSz = MAX_OID_STRING_SZ;
5882+
bufSz = MAX_OID_STRING_SZ - 1;
58825883
}
58835884

58845885
if ((bufSz = DecodePolicyOID(buf, (word32)bufSz, a->obj + idx,

src/ssl_crypto.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4015,6 +4015,8 @@ int wolfSSL_RAND_pseudo_bytes(unsigned char* buf, int num)
40154015
hash = WC_SHA;
40164016
#elif !defined(NO_MD5)
40174017
hash = WC_MD5;
4018+
#else
4019+
#error "No PRF hash function available"
40184020
#endif
40194021

40204022
/* get secret value from source of entropy */
@@ -4029,6 +4031,7 @@ int wolfSSL_RAND_pseudo_bytes(unsigned char* buf, int num)
40294031
PRIVATE_KEY_LOCK();
40304032
ret = (ret == 0) ? WOLFSSL_SUCCESS: WOLFSSL_FAILURE;
40314033
}
4034+
ForceZero(secret, sizeof(secret));
40324035
#else
40334036
/* fall back to just doing wolfSSL_RAND_bytes if PRF not avialbale */
40344037
ret = wolfSSL_RAND_bytes(buf, num);
@@ -4202,6 +4205,7 @@ int wolfSSL_RAND_poll(void)
42024205
}
42034206

42044207
wc_UnLockMutex(&globalRNGMutex);
4208+
ForceZero(entropy, sizeof(entropy));
42054209

42064210
return ret;
42074211
}

0 commit comments

Comments
 (0)