[client,common] fix gateway parameter parsing

Abort if an invalid /gateway:type:xxx parameter was passed.
This commit is contained in:
Armin Novak 2025-03-05 14:02:44 +01:00
parent b138f6ca18
commit 9be8518873
No known key found for this signature in database
GPG Key ID: 2CF4A2D2D3D72105

View File

@ -3987,6 +3987,8 @@ static BOOL parse_gateway_cred_option(rdpSettings* settings, const char* value,
static BOOL parse_gateway_type_option(rdpSettings* settings, const char* value) static BOOL parse_gateway_type_option(rdpSettings* settings, const char* value)
{ {
BOOL rc = FALSE;
WINPR_ASSERT(settings); WINPR_ASSERT(settings);
WINPR_ASSERT(value); WINPR_ASSERT(value);
@ -3997,6 +3999,7 @@ static BOOL parse_gateway_type_option(rdpSettings* settings, const char* value)
!freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpUseWebsockets, FALSE) || !freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpUseWebsockets, FALSE) ||
!freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, FALSE)) !freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, FALSE))
return FALSE; return FALSE;
rc = TRUE;
} }
else else
{ {
@ -4006,6 +4009,7 @@ static BOOL parse_gateway_type_option(rdpSettings* settings, const char* value)
!freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpTransport, TRUE) || !freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpTransport, TRUE) ||
!freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, FALSE)) !freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, FALSE))
return FALSE; return FALSE;
rc = TRUE;
} }
else if (option_equals(value, "auto")) else if (option_equals(value, "auto"))
{ {
@ -4013,6 +4017,7 @@ static BOOL parse_gateway_type_option(rdpSettings* settings, const char* value)
!freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpTransport, TRUE) || !freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpTransport, TRUE) ||
!freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, FALSE)) !freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, FALSE))
return FALSE; return FALSE;
rc = TRUE;
} }
else if (option_equals(value, "arm")) else if (option_equals(value, "arm"))
{ {
@ -4021,9 +4026,10 @@ static BOOL parse_gateway_type_option(rdpSettings* settings, const char* value)
!freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpUseWebsockets, FALSE) || !freerdp_settings_set_bool(settings, FreeRDP_GatewayHttpUseWebsockets, FALSE) ||
!freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, TRUE)) !freerdp_settings_set_bool(settings, FreeRDP_GatewayArmTransport, TRUE))
return FALSE; return FALSE;
rc = TRUE;
} }
} }
return TRUE; return rc;
} }
static BOOL parse_gateway_usage_option(rdpSettings* settings, const char* value) static BOOL parse_gateway_usage_option(rdpSettings* settings, const char* value)