diff --git a/libfreerdp/core/info.c b/libfreerdp/core/info.c index 5ff60f536..f204ed0c9 100644 --- a/libfreerdp/core/info.c +++ b/libfreerdp/core/info.c @@ -322,11 +322,15 @@ static size_t rdp_get_client_address_max_size(const rdpRdp* rdp) static BOOL rdp_read_extended_info_packet(rdpRdp* rdp, wStream* s) { - UINT16 clientAddressFamily; - UINT16 cbClientAddress; - UINT16 cbClientDir; - UINT16 cbAutoReconnectLen; + UINT16 clientAddressFamily = 0; + UINT16 cbClientAddress = 0; + UINT16 cbClientDir = 0; + UINT16 cbAutoReconnectLen = 0; + + WINPR_ASSERT(rdp); + rdpSettings* settings = rdp->settings; + WINPR_ASSERT(settings); if (!Stream_CheckAndLogRequiredLength(TAG, s, 4)) return FALSE; @@ -424,7 +428,7 @@ static BOOL rdp_read_extended_info_packet(rdpRdp* rdp, wStream* s) if (!Stream_CheckAndLogRequiredLength(TAG, s, 2)) return FALSE; { - UINT16 cbDynamicDSTTimeZoneKeyName; + UINT16 cbDynamicDSTTimeZoneKeyName = 0; Stream_Read_UINT16(s, cbDynamicDSTTimeZoneKeyName); @@ -462,20 +466,21 @@ end: static BOOL rdp_write_extended_info_packet(rdpRdp* rdp, wStream* s) { BOOL ret = FALSE; - UINT16 clientAddressFamily; - WCHAR* clientAddress = NULL; - size_t cbClientAddress; + size_t cbClientAddress = 0; const size_t cbClientAddressMax = rdp_get_client_address_max_size(rdp); WCHAR* clientDir = NULL; - size_t cbClientDir; + size_t cbClientDir = 0; const size_t cbClientDirMax = 512; - UINT16 cbAutoReconnectCookie; - rdpSettings* settings; - if (!rdp || !rdp->settings || !s) - return FALSE; - settings = rdp->settings; - clientAddressFamily = settings->IPv6Enabled ? ADDRESS_FAMILY_INET6 : ADDRESS_FAMILY_INET; - clientAddress = ConvertUtf8ToWCharAlloc(settings->ClientAddress, &cbClientAddress); + UINT16 cbAutoReconnectCookie = 0; + + WINPR_ASSERT(rdp); + + rdpSettings* settings = rdp->settings; + WINPR_ASSERT(settings); + + const UINT16 clientAddressFamily = + settings->IPv6Enabled ? ADDRESS_FAMILY_INET6 : ADDRESS_FAMILY_INET; + WCHAR* clientAddress = ConvertUtf8ToWCharAlloc(settings->ClientAddress, &cbClientAddress); if (cbClientAddress > (UINT16_MAX / sizeof(WCHAR))) goto fail; @@ -554,7 +559,7 @@ static BOOL rdp_write_extended_info_packet(rdpRdp* rdp, wStream* s) Stream_Write_UINT16(s, 0); /* reserved2 (2 bytes) */ } - if (settings->EarlyCapabilityFlags & RNS_UD_CS_SUPPORT_DYNAMIC_TIME_ZONE) + if (freerdp_settings_get_bool(settings, FreeRDP_SupportDynamicTimeZone)) { if (!Stream_EnsureRemainingCapacity(s, 10 + 254 * sizeof(WCHAR))) goto fail;