forked from wolfSSL/wolfssl
Fix some memory issues in wolfSSL_state_string_long().
This commit is contained in:
committed by
Jacob Barthelmeh
parent
a32ae3e516
commit
fd05de8346
60
src/ssl.c
60
src/ssl.c
@@ -15150,6 +15150,9 @@ static void ExternalFreeX509(WOLFSSL_X509* x509)
|
|||||||
if (pos != name->fullName.cnIdx)
|
if (pos != name->fullName.cnIdx)
|
||||||
ret = name->fullName.cnIdx;
|
ret = name->fullName.cnIdx;
|
||||||
break;
|
break;
|
||||||
|
case NID_domainComponent:
|
||||||
|
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
WOLFSSL_MSG("NID not yet implemented");
|
WOLFSSL_MSG("NID not yet implemented");
|
||||||
break;
|
break;
|
||||||
@@ -19074,6 +19077,7 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
WOLFSSL_ENTER("wolfSSL_state_string_long");
|
WOLFSSL_ENTER("wolfSSL_state_string_long");
|
||||||
|
|
||||||
char state_msg[100];
|
char state_msg[100];
|
||||||
|
static char output_str[100];
|
||||||
|
|
||||||
if (ssl == NULL) {
|
if (ssl == NULL) {
|
||||||
WOLFSSL_MSG("Null argument passed in");
|
WOLFSSL_MSG("Null argument passed in");
|
||||||
@@ -19117,115 +19121,105 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
XSTRNCPY(state_msg, "Unknown Protocol", 16);
|
XSTRNCPY(state_msg, "Unknown Protocol", 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XMEMSET(output_str, 0, sizeof(output_str));
|
||||||
switch (wolfSSL_get_state(ssl)) {
|
switch (wolfSSL_get_state(ssl)) {
|
||||||
case NULL_STATE:
|
case NULL_STATE:
|
||||||
{
|
{
|
||||||
static char NL_ST[100];
|
|
||||||
const char* state = " Null State";
|
const char* state = " Null State";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(NL_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return NL_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SERVER_HELLOVERIFYREQUEST_COMPLETE:
|
case SERVER_HELLOVERIFYREQUEST_COMPLETE:
|
||||||
{
|
{
|
||||||
static char SHVC_ST[100];
|
|
||||||
const char* state = " Server Hello Verify Request Complete";
|
const char* state = " Server Hello Verify Request Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(SHVC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return SHVC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SERVER_HELLO_COMPLETE:
|
case SERVER_HELLO_COMPLETE:
|
||||||
{
|
{
|
||||||
static char SHC_ST[100];
|
|
||||||
const char* state = " Server Hello Complete";
|
const char* state = " Server Hello Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(SHC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return SHC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SERVER_CERT_COMPLETE:
|
case SERVER_CERT_COMPLETE:
|
||||||
{
|
{
|
||||||
static char SCC_ST[100];
|
|
||||||
const char* state = " Server Certificate Complete";
|
const char* state = " Server Certificate Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(SCC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return SCC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SERVER_KEYEXCHANGE_COMPLETE:
|
case SERVER_KEYEXCHANGE_COMPLETE:
|
||||||
{
|
{
|
||||||
static char SKC_ST[100];
|
|
||||||
const char* state = " Server Key Exchange Complete";
|
const char* state = " Server Key Exchange Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(SKC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return SKC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SERVER_HELLODONE_COMPLETE:
|
case SERVER_HELLODONE_COMPLETE:
|
||||||
{
|
{
|
||||||
static char SHDC_ST[100];
|
|
||||||
const char* state = " Server Hello Done Complete";
|
const char* state = " Server Hello Done Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(SHDC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return SHDC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case SERVER_FINISHED_COMPLETE:
|
case SERVER_FINISHED_COMPLETE:
|
||||||
{
|
{
|
||||||
static char SFC_ST[100];
|
|
||||||
const char* state = " Server Finished Complete";
|
const char* state = " Server Finished Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(SFC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return SFC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CLIENT_HELLO_COMPLETE:
|
case CLIENT_HELLO_COMPLETE:
|
||||||
{
|
{
|
||||||
static char CHC_ST[100];
|
|
||||||
const char* state = " Client Hello Complete";
|
const char* state = " Client Hello Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(CHC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return CHC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CLIENT_KEYEXCHANGE_COMPLETE:
|
case CLIENT_KEYEXCHANGE_COMPLETE:
|
||||||
{
|
{
|
||||||
static char CKC_ST[100];
|
|
||||||
const char* state = " Client Key Exchange Complete";
|
const char* state = " Client Key Exchange Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(CKC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return CKC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CLIENT_FINISHED_COMPLETE:
|
case CLIENT_FINISHED_COMPLETE:
|
||||||
{
|
{
|
||||||
static char CFC_ST[100];
|
|
||||||
const char* state = " Client Finished Complete";
|
const char* state = " Client Finished Complete";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(CFC_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return CFC_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
case HANDSHAKE_DONE:
|
case HANDSHAKE_DONE:
|
||||||
{
|
{
|
||||||
static char HD_ST[100];
|
|
||||||
const char* state = " Handshake Done";
|
const char* state = " Handshake Done";
|
||||||
|
|
||||||
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
XSTRNCAT(state_msg, state, XSTRLEN(state) + 1);
|
||||||
XSTRNCPY(HD_ST, state_msg, sizeof(state_msg));
|
XSTRNCPY(output_str, state_msg, sizeof(state_msg));
|
||||||
return HD_ST;
|
return output_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user