Fix 'negative character value'

In a number of libc implementations, isalpha()/isalnum() is implemented using lookup tables (arrays): passing in a negative value can result in a read underrun.
This commit is contained in:
Andras Fekete
2023-09-20 16:41:00 -04:00
parent 1abaa94120
commit ec0a2f2683
2 changed files with 2 additions and 2 deletions

View File

@ -744,7 +744,7 @@ static char* expandValue(WOLFSSL_CONF *conf, const char* section,
strIdx += 2;
startIdx = strIdx;
}
while (*strIdx && (XISALNUM((int)(*strIdx)) || *strIdx == '_'))
while (*strIdx && (XISALNUM(*strIdx) || *strIdx == '_'))
strIdx++;
endIdx = strIdx;
if (startIdx == endIdx) {

View File

@ -1225,7 +1225,7 @@ static WC_INLINE void build_addr(SOCKADDR_IN_T* addr, const char* peer,
#ifndef TEST_IPV6
/* peer could be in human readable form */
if ( ((size_t)peer != INADDR_ANY) && isalpha((int)peer[0])) {
if ( ((size_t)peer != INADDR_ANY) && isalpha(peer[0])) {
#ifdef WOLFSSL_USE_POPEN_HOST
char host_ipaddr[4] = { 127, 0, 0, 1 };
int found = 1;