[core,crypto] log more parsing failures

This commit is contained in:
Armin Novak 2023-01-18 11:07:58 +01:00 committed by Martin Fleisz
parent f62c658e17
commit e0a14edfbb
4 changed files with 44 additions and 13 deletions

View File

@ -426,7 +426,7 @@ static BOOL mcs_init_domain_parameters(DomainParameters* domainParameters, UINT3
static BOOL mcs_read_domain_parameters(wStream* s, DomainParameters* domainParameters)
{
size_t length;
size_t length = 0;
if (!s || !domainParameters)
return FALSE;
@ -536,6 +536,8 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid maxChannelIds [%" PRIu32 ", %" PRIu32 "]", __FUNCTION__,
targetParameters->maxChannelIds, maximumParameters->maxChannelIds);
return FALSE;
}
@ -551,6 +553,8 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid maxUserIds [%" PRIu32 ", %" PRIu32 "]", __FUNCTION__,
targetParameters->maxUserIds, maximumParameters->maxUserIds);
return FALSE;
}
@ -565,6 +569,8 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid numPriorities [%" PRIu32 "]", __FUNCTION__,
maximumParameters->numPriorities);
return FALSE;
}
@ -579,6 +585,8 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid maxHeight [%" PRIu32 ", %" PRIu32 "]", __FUNCTION__,
targetParameters->maxHeight, minimumParameters->maxHeight);
return FALSE;
}
@ -597,6 +605,8 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid maxMCSPDUsize [%" PRIu32 ", %" PRIu32 "]", __FUNCTION__,
targetParameters->maxMCSPDUsize, minimumParameters->maxMCSPDUsize);
return FALSE;
}
}
@ -608,6 +618,8 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid maxMCSPDUsize [%" PRIu32 "]", __FUNCTION__,
maximumParameters->maxMCSPDUsize);
return FALSE;
}
}
@ -621,6 +633,9 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
}
else
{
WLog_ERR(TAG, "[%s] invalid protocolVersion [%" PRIu32 ", %" PRIu32 ", %" PRIu32 "]",
__FUNCTION__, targetParameters->protocolVersion,
minimumParameters->protocolVersion, maximumParameters->protocolVersion);
return FALSE;
}
@ -636,10 +651,10 @@ BOOL mcs_merge_domain_parameters(DomainParameters* targetParameters,
BOOL mcs_recv_connect_initial(rdpMcs* mcs, wStream* s)
{
UINT16 li;
size_t length;
BOOL upwardFlag;
UINT16 tlength;
UINT16 li = 0;
size_t length = 0;
BOOL upwardFlag = FALSE;
UINT16 tlength = 0;
WINPR_ASSERT(mcs);
WINPR_ASSERT(s);
@ -1448,26 +1463,31 @@ void mcs_free(rdpMcs* mcs)
BOOL mcs_server_apply_to_settings(const rdpMcs* mcs, rdpSettings* settings)
{
UINT32 x;
BOOL rc = FALSE;
WINPR_ASSERT(mcs);
WINPR_ASSERT(settings);
if (!freerdp_settings_set_uint32(settings, FreeRDP_ChannelCount, mcs->channelCount))
return FALSE;
goto fail;
if (!freerdp_settings_set_pointer_len(settings, FreeRDP_ChannelDefArray, NULL,
mcs->channelCount))
return FALSE;
goto fail;
for (x = 0; x < mcs->channelCount; x++)
for (UINT32 x = 0; x < mcs->channelCount; x++)
{
const rdpMcsChannel* current = &mcs->channels[x];
CHANNEL_DEF def = { 0 };
def.options = current->options;
memcpy(def.name, current->Name, sizeof(def.name));
if (!freerdp_settings_set_pointer_array(settings, FreeRDP_ChannelDefArray, x, &def))
return FALSE;
goto fail;
}
return TRUE;
rc = TRUE;
fail:
if (!rc)
WLog_WARN(TAG, "[%s] failed to apply settings", __FUNCTION__);
return rc;
}

View File

@ -246,14 +246,18 @@ BOOL tpdu_write_data(wStream* s)
BOOL tpdu_read_data(wStream* s, UINT16* LI, UINT16 tpktlength)
{
BYTE code;
BYTE li;
BYTE code = 0;
BYTE li = 0;
if (!tpdu_read_header(s, &code, &li, tpktlength))
return FALSE;
if (code != X224_TPDU_DATA)
{
WLog_ERR(TAG, "tpdu got code 0x%02" PRIx8 " expected X224_TPDU_DATA [0x%02x]", code,
X224_TPDU_DATA);
return FALSE;
}
*LI = li;

View File

@ -53,7 +53,10 @@ BOOL ber_read_length(wStream* s, size_t* length)
else if (byte == 2)
Stream_Read_UINT16_BE(s, *length);
else
{
WLog_ERR(TAG, "ber: unexpected byte 0x%02" PRIx8 ", expected [1,2]", byte);
return FALSE;
}
}
else
{

View File

@ -501,7 +501,11 @@ BOOL per_read_octet_string(wStream* s, const BYTE* oct_str, UINT16 length, UINT1
return FALSE;
if (mlength + min != length)
{
WLog_ERR(TAG, "[%s] length mismatch: %" PRIu16 "!= %" PRIu16, __FUNCTION__, mlength + min,
length);
return FALSE;
}
if (!Stream_CheckAndLogRequiredLength(TAG, s, length))
return FALSE;