[various] add proper return checks

This commit is contained in:
Armin Novak
2026-03-02 18:27:59 +01:00
parent b1e4933c78
commit 35831303ea
5 changed files with 33 additions and 25 deletions

View File

@@ -351,7 +351,6 @@ NSC_CONTEXT* nsc_context_new(void)
goto error;
context->priv->log = WLog_Get("com.freerdp.codec.nsc");
WLog_OpenAppender(context->priv->log);
context->BitmapData = nullptr;
context->decode = nsc_decode;
context->encode = nsc_encode;

View File

@@ -220,7 +220,6 @@ RFX_CONTEXT* rfx_context_new_ex(BOOL encoder, UINT32 ThreadingFlags)
goto fail;
priv->log = WLog_Get("com.freerdp.codec.rfx");
WLog_OpenAppender(priv->log);
priv->TilePool = ObjectPool_New(TRUE);
if (!priv->TilePool)

View File

@@ -81,13 +81,15 @@ BOOL freerdp_addin_argv_del_argument(ADDIN_ARGV* args, const char* argument)
if (strcmp(argument, arg) == 0)
{
free(arg);
const BOOL res =
memmove_s((void*)&args->argv[x],
(WINPR_ASSERTING_INT_CAST(uint32_t, args->argc - x)) * sizeof(char*),
(void*)&args->argv[x + 1],
(WINPR_ASSERTING_INT_CAST(uint32_t, args->argc - x - 1)) * sizeof(char*));
(WINPR_ASSERTING_INT_CAST(uint32_t, args->argc - x - 1)) *
sizeof(char*)) >= 0;
args->argv[args->argc - 1] = nullptr;
args->argc--;
return TRUE;
return res;
}
}
return FALSE;
@@ -571,15 +573,17 @@ BOOL freerdp_static_channel_collection_del(rdpSettings* settings, const char* na
{
if (strcmp(name, cur->argv[0]) == 0)
{
memmove_s((void*)&settings->StaticChannelArray[x],
const BOOL success = memmove_s((void*)&settings->StaticChannelArray[x],
(count - x) * sizeof(ADDIN_ARGV*),
(void*)&settings->StaticChannelArray[x + 1],
(count - x - 1) * sizeof(ADDIN_ARGV*));
(count - x - 1) * sizeof(ADDIN_ARGV*)) >= 0;
for (size_t y = count - 1; y < settings->StaticChannelArraySize; y++)
settings->StaticChannelArray[y] = nullptr;
freerdp_addin_argv_free(cur);
return freerdp_settings_set_uint32(settings, FreeRDP_StaticChannelCount, count - 1);
if (!freerdp_settings_set_uint32(settings, FreeRDP_StaticChannelCount, count - 1))
return FALSE;
return success;
}
}
}
@@ -677,16 +681,17 @@ BOOL freerdp_dynamic_channel_collection_del(rdpSettings* settings, const char* n
{
if (strcmp(name, cur->argv[0]) == 0)
{
memmove_s((void*)&settings->DynamicChannelArray[x],
const BOOL success = memmove_s((void*)&settings->DynamicChannelArray[x],
(count - x) * sizeof(ADDIN_ARGV*),
(void*)&settings->DynamicChannelArray[x + 1],
(count - x - 1) * sizeof(ADDIN_ARGV*));
(count - x - 1) * sizeof(ADDIN_ARGV*)) >= 0;
for (size_t y = count - 1; y < settings->DynamicChannelArraySize; y++)
settings->DynamicChannelArray[y] = nullptr;
freerdp_addin_argv_free(cur);
return freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelCount,
count - 1);
if (!freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelCount, count - 1))
return FALSE;
return success;
}
}
}

View File

@@ -322,9 +322,10 @@ static char* arm_create_request_json(rdpArm* arm)
WINPR_JSON* json = WINPR_JSON_CreateObject();
if (!json)
goto arm_create_cleanup;
WINPR_JSON_AddStringToObject(
if (!WINPR_JSON_AddStringToObject(
json, "application",
freerdp_settings_get_string(arm->context->settings, FreeRDP_RemoteApplicationProgram));
freerdp_settings_get_string(arm->context->settings, FreeRDP_RemoteApplicationProgram)))
goto arm_create_cleanup;
lbi = calloc(
freerdp_settings_get_uint32(arm->context->settings, FreeRDP_LoadBalanceInfoLength) + 1,
@@ -339,9 +340,12 @@ static char* arm_create_request_json(rdpArm* arm)
len);
}
WINPR_JSON_AddStringToObject(json, "loadBalanceInfo", lbi);
WINPR_JSON_AddNullToObject(json, "LogonToken");
WINPR_JSON_AddNullToObject(json, "gatewayLoadBalancerToken");
if (!WINPR_JSON_AddStringToObject(json, "loadBalanceInfo", lbi))
goto arm_create_cleanup;
if (!WINPR_JSON_AddNullToObject(json, "LogonToken"))
goto arm_create_cleanup;
if (!WINPR_JSON_AddNullToObject(json, "gatewayLoadBalancerToken"))
goto arm_create_cleanup;
message = WINPR_JSON_PrintUnformatted(json);
arm_create_cleanup:

View File

@@ -593,7 +593,8 @@ static BOOL http_proxy_connect(rdpContext* context, BIO* bufferedBio, const char
const UINT32 timeout =
freerdp_settings_get_uint32(context->settings, FreeRDP_TcpConnectTimeout);
_itoa_s(port, port_str, sizeof(port_str), 10);
if (_itoa_s(port, port_str, sizeof(port_str), 10) < 0)
return FALSE;
hostLen = strlen(hostname);
portLen = strnlen(port_str, sizeof(port_str));