mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 11:17:29 +02:00
Check a null pointer dereference
This commit is contained in:
13
src/ssl.c
13
src/ssl.c
@ -19745,13 +19745,21 @@ int wolfSSL_X509_VERIFY_PARAM_set1_host(WOLFSSL_X509_VERIFY_PARAM* pParam,
|
|||||||
const char* name,
|
const char* name,
|
||||||
unsigned int nameSz)
|
unsigned int nameSz)
|
||||||
{
|
{
|
||||||
|
unsigned int sz = 0;
|
||||||
|
|
||||||
if (pParam == NULL)
|
if (pParam == NULL)
|
||||||
return WOLFSSL_FAILURE;
|
return WOLFSSL_FAILURE;
|
||||||
|
|
||||||
XMEMSET(pParam->hostName, 0, WOLFSSL_HOST_NAME_MAX);
|
XMEMSET(pParam->hostName, 0, WOLFSSL_HOST_NAME_MAX);
|
||||||
|
|
||||||
|
if (name == NULL)
|
||||||
|
return WOLFSSL_SUCCESS;
|
||||||
|
|
||||||
|
sz = (unsigned int)XSTRLEN(name);
|
||||||
|
|
||||||
/* If name is NUL-terminated, namelen can be set to zero. */
|
/* If name is NUL-terminated, namelen can be set to zero. */
|
||||||
if(name && (nameSz == 0))
|
if(nameSz == 0 || nameSz > sz)
|
||||||
nameSz = (unsigned int)XSTRLEN(name);
|
nameSz = sz;
|
||||||
|
|
||||||
if (nameSz > 0 && name[nameSz - 1] == '\0')
|
if (nameSz > 0 && name[nameSz - 1] == '\0')
|
||||||
nameSz--;
|
nameSz--;
|
||||||
@ -19765,7 +19773,6 @@ int wolfSSL_X509_VERIFY_PARAM_set1_host(WOLFSSL_X509_VERIFY_PARAM* pParam,
|
|||||||
pParam->hostName[nameSz] = '\0';
|
pParam->hostName[nameSz] = '\0';
|
||||||
|
|
||||||
return WOLFSSL_SUCCESS;
|
return WOLFSSL_SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* wolfSSL_get0_param - return a pointer to the SSL verification parameters
|
* wolfSSL_get0_param - return a pointer to the SSL verification parameters
|
||||||
|
Reference in New Issue
Block a user