Fixed various scanbuild warnings.

This commit is contained in:
Armin Novak 2017-12-21 09:34:35 +01:00
parent e3e65734e8
commit 6a21bdae3d
8 changed files with 46 additions and 46 deletions

58
channels/geometry/client/geometry_main.c Executable file → Normal file
View File

@ -67,12 +67,12 @@ struct _GEOMETRY_PLUGIN
IWTSListener* listener;
GEOMETRY_LISTENER_CALLBACK* listener_callback;
GeometryClientContext *context;
GeometryClientContext* context;
};
typedef struct _GEOMETRY_PLUGIN GEOMETRY_PLUGIN;
static UINT32 geometry_read_RGNDATA(wStream *s, UINT32 len, FREERDP_RGNDATA *rgndata)
static UINT32 geometry_read_RGNDATA(wStream* s, UINT32 len, FREERDP_RGNDATA* rgndata)
{
UINT32 dwSize, iType;
INT32 right, bottom;
@ -84,13 +84,17 @@ static UINT32 geometry_read_RGNDATA(wStream *s, UINT32 len, FREERDP_RGNDATA *rgn
}
Stream_Read_UINT32(s, dwSize);
if (dwSize != 32) {
if (dwSize != 32)
{
WLog_ERR(TAG, "invalid RGNDATA dwSize");
return ERROR_INVALID_DATA;
}
Stream_Read_UINT32(s, iType);
if (iType != RDH_RECTANGLE) {
if (iType != RDH_RECTANGLE)
{
WLog_ERR(TAG, "iType %"PRIu32" for RGNDATA is not supported", iType);
return ERROR_UNSUPPORTED_TYPE;
}
@ -101,11 +105,10 @@ static UINT32 geometry_read_RGNDATA(wStream *s, UINT32 len, FREERDP_RGNDATA *rgn
Stream_Read_INT32(s, rgndata->boundingRect.y);
Stream_Read_INT32(s, right);
Stream_Read_INT32(s, bottom);
rgndata->boundingRect.width = right - rgndata->boundingRect.x;
rgndata->boundingRect.height = bottom - rgndata->boundingRect.y;
len -= 32;
if (len / (4 * 4) < rgndata->nRectCount)
{
WLog_ERR(TAG, "not enough data for region rectangles");
@ -127,7 +130,6 @@ static UINT32 geometry_read_RGNDATA(wStream *s, UINT32 len, FREERDP_RGNDATA *rgn
Stream_Read_INT32(s, rgndata->rects[i].y);
Stream_Read_INT32(s, right);
Stream_Read_INT32(s, bottom);
rgndata->rects[i].width = right - rgndata->rects[i].x;
rgndata->rects[i].height = bottom - rgndata->rects[i].y;
}
@ -146,11 +148,10 @@ static UINT geometry_recv_pdu(GEOMETRY_CHANNEL_CALLBACK* callback, wStream* s)
UINT32 length, cbGeometryBuffer;
MAPPED_GEOMETRY_PACKET packet;
GEOMETRY_PLUGIN* geometry;
GeometryClientContext *context;
GeometryClientContext* context;
UINT ret;
geometry = (GEOMETRY_PLUGIN*) callback->plugin;
context = (GeometryClientContext *)geometry->iface.pInterface;
context = (GeometryClientContext*)geometry->iface.pInterface;
if (Stream_GetRemainingLength(s) < 4)
{
@ -159,7 +160,8 @@ static UINT geometry_recv_pdu(GEOMETRY_CHANNEL_CALLBACK* callback, wStream* s)
}
Stream_Read_UINT32(s, length); /* Length (4 bytes) */
if (length < 73 || Stream_GetRemainingLength(s) < (length-4))
if (length < 73 || Stream_GetRemainingLength(s) < (length - 4))
{
WLog_ERR(TAG, "invalid packet length");
return ERROR_INVALID_DATA;
@ -170,20 +172,17 @@ static UINT geometry_recv_pdu(GEOMETRY_CHANNEL_CALLBACK* callback, wStream* s)
Stream_Read_UINT32(s, packet.updateType);
Stream_Seek_UINT32(s); /* flags */
Stream_Read_UINT64(s, packet.topLevelId);
Stream_Read_INT32(s, packet.left);
Stream_Read_INT32(s, packet.top);
Stream_Read_INT32(s, packet.right);
Stream_Read_INT32(s, packet.bottom);
Stream_Read_INT32(s, packet.topLevelLeft);
Stream_Read_INT32(s, packet.topLevelTop);
Stream_Read_INT32(s, packet.topLevelRight);
Stream_Read_INT32(s, packet.topLevelBottom);
Stream_Read_UINT32(s, packet.geometryType);
Stream_Read_UINT32(s, cbGeometryBuffer);
if (Stream_GetRemainingLength(s) < cbGeometryBuffer)
{
WLog_ERR(TAG, "invalid packet length");
@ -191,12 +190,16 @@ static UINT geometry_recv_pdu(GEOMETRY_CHANNEL_CALLBACK* callback, wStream* s)
}
ZeroMemory(&packet.geometry, sizeof(packet.geometry));
if (cbGeometryBuffer)
{
ret = geometry_read_RGNDATA(s, cbGeometryBuffer, &packet.geometry);
if (ret != CHANNEL_RC_OK)
return ret;
}
else
ret = CHANNEL_RC_OK;
if (context->MappedGeometryPacket)
ret = context->MappedGeometryPacket(context, &packet);
@ -210,10 +213,9 @@ static UINT geometry_recv_pdu(GEOMETRY_CHANNEL_CALLBACK* callback, wStream* s)
*
* @return 0 on success, otherwise a Win32 error code
*/
static UINT geometry_on_data_received(IWTSVirtualChannelCallback* pChannelCallback, wStream *data)
static UINT geometry_on_data_received(IWTSVirtualChannelCallback* pChannelCallback, wStream* data)
{
GEOMETRY_CHANNEL_CALLBACK* callback = (GEOMETRY_CHANNEL_CALLBACK*) pChannelCallback;
return geometry_recv_pdu(callback, data);
}
@ -234,12 +236,11 @@ static UINT geometry_on_close(IWTSVirtualChannelCallback* pChannelCallback)
* @return 0 on success, otherwise a Win32 error code
*/
static UINT geometry_on_new_channel_connection(IWTSListenerCallback* pListenerCallback,
IWTSVirtualChannel* pChannel, BYTE* Data, BOOL* pbAccept,
IWTSVirtualChannelCallback** ppCallback)
IWTSVirtualChannel* pChannel, BYTE* Data, BOOL* pbAccept,
IWTSVirtualChannelCallback** ppCallback)
{
GEOMETRY_CHANNEL_CALLBACK* callback;
GEOMETRY_LISTENER_CALLBACK* listener_callback = (GEOMETRY_LISTENER_CALLBACK*) pListenerCallback;
callback = (GEOMETRY_CHANNEL_CALLBACK*) calloc(1, sizeof(GEOMETRY_CHANNEL_CALLBACK));
if (!callback)
@ -254,9 +255,7 @@ static UINT geometry_on_new_channel_connection(IWTSListenerCallback* pListenerCa
callback->channel_mgr = listener_callback->channel_mgr;
callback->channel = pChannel;
listener_callback->channel_callback = callback;
*ppCallback = (IWTSVirtualChannelCallback*) callback;
return CHANNEL_RC_OK;
}
@ -269,8 +268,9 @@ static UINT geometry_plugin_initialize(IWTSPlugin* pPlugin, IWTSVirtualChannelMa
{
UINT status;
GEOMETRY_PLUGIN* geometry = (GEOMETRY_PLUGIN*) pPlugin;
geometry->listener_callback = (GEOMETRY_LISTENER_CALLBACK*) calloc(1,
sizeof(GEOMETRY_LISTENER_CALLBACK));
geometry->listener_callback = (GEOMETRY_LISTENER_CALLBACK*) calloc(1, sizeof(GEOMETRY_LISTENER_CALLBACK));
if (!geometry->listener_callback)
{
WLog_ERR(TAG, "calloc failed!");
@ -280,12 +280,9 @@ static UINT geometry_plugin_initialize(IWTSPlugin* pPlugin, IWTSVirtualChannelMa
geometry->listener_callback->iface.OnNewChannelConnection = geometry_on_new_channel_connection;
geometry->listener_callback->plugin = pPlugin;
geometry->listener_callback->channel_mgr = pChannelMgr;
status = pChannelMgr->CreateListener(pChannelMgr, GEOMETRY_DVC_CHANNEL_NAME, 0,
(IWTSListenerCallback*) geometry->listener_callback, &(geometry->listener));
(IWTSListenerCallback*) geometry->listener_callback, &(geometry->listener));
geometry->listener->pInterface = geometry->iface.pInterface;
return status;
}
@ -324,11 +321,12 @@ UINT DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)
UINT error = CHANNEL_RC_OK;
GEOMETRY_PLUGIN* geometry;
GeometryClientContext* context;
geometry = (GEOMETRY_PLUGIN*) pEntryPoints->GetPlugin(pEntryPoints, "geometry");
if (!geometry)
{
geometry = (GEOMETRY_PLUGIN*) calloc(1, sizeof(GEOMETRY_PLUGIN));
if (!geometry)
{
WLog_ERR(TAG, "calloc failed!");
@ -339,8 +337,8 @@ UINT DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)
geometry->iface.Connected = NULL;
geometry->iface.Disconnected = NULL;
geometry->iface.Terminated = geometry_plugin_terminated;
context = (GeometryClientContext*) calloc(1, sizeof(GeometryClientContext));
if (!context)
{
WLog_ERR(TAG, "calloc failed!");
@ -349,10 +347,8 @@ UINT DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)
}
context->handle = (void*) geometry;
geometry->iface.pInterface = (void*) context;
geometry->context = context;
error = pEntryPoints->RegisterPlugin(pEntryPoints, "geometry", (IWTSPlugin*) geometry);
}
else

View File

@ -2789,7 +2789,7 @@ LONG smartcard_unpack_locate_cards_by_atr_a_call(SMARTCARD_DEVICE* smartcard, wS
if (call->cReaders > 0)
{
call->rgReaderStates = (ReaderStateA*)calloc(call->cReaders, sizeof(SCARD_READERSTATEA));
call->rgReaderStates = (ReaderStateA*)calloc(call->cReaders, sizeof(ReaderStateA));
if (!call->rgReaderStates)
{

View File

@ -246,10 +246,7 @@ static void freerdp_client_print_command_line_args(COMMAND_LINE_ARGUMENT_A* arg)
length += 2;
if (length >= 20 + 8 + 8)
{
length += 3 - strlen(arg->Format);
overlong = TRUE;
}
if (arg->Flags & COMMAND_LINE_VALUE_OPTIONAL)
printf("%s[:%s]", arg->Name, overlong ? "..." : arg->Format);
@ -476,7 +473,6 @@ BOOL freerdp_client_add_device_channel(rdpSettings* settings, int count,
settings->RedirectSmartCards = TRUE;
settings->DeviceRedirection = TRUE;
smartcard = (RDPDR_SMARTCARD*) calloc(1, sizeof(RDPDR_SMARTCARD));
if (!smartcard)
@ -725,7 +721,8 @@ error_argv:
return FALSE;
}
static char** freerdp_command_line_parse_comma_separated_values_ex(const char* name, const char* list,
static char** freerdp_command_line_parse_comma_separated_values_ex(const char* name,
const char* list,
size_t* count)
{
char** p;
@ -757,7 +754,8 @@ static char** freerdp_command_line_parse_comma_separated_values_ex(const char* n
{
const char* it = list;
while((it = strchr(it, ',')) != NULL)
while ((it = strchr(it, ',')) != NULL)
{
it++;
nCommas++;
@ -771,7 +769,7 @@ static char** freerdp_command_line_parse_comma_separated_values_ex(const char* n
prefix = (nArgs + 1UL) * sizeof(char*);
len = strlen(list);
p = (char**) calloc(len + prefix + 1, sizeof(char));
p = (char**) calloc(len + prefix + 1, sizeof(char*));
if (!p)
return NULL;
@ -1760,6 +1758,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
WLog_ERR(TAG, "Smart sizing and dynamic resolution are mutually exclusive options");
return COMMAND_LINE_ERROR_UNEXPECTED_VALUE;
}
settings->SupportDisplayControl = TRUE;
settings->DynamicResolutionUpdate = TRUE;
}

View File

@ -430,6 +430,10 @@ static BOOL certificate_process_server_public_signature(rdpCertificate* certific
#endif
Stream_Read(s, encsig, siglen);
if (siglen < 8)
return FALSE;
/* Last 8 bytes shall be all zero. */
#if defined(CERT_VALIDATE_PADDING)
@ -443,10 +447,9 @@ static BOOL certificate_process_server_public_signature(rdpCertificate* certific
}
#endif
siglen -= 8;
#if defined(CERT_VALIDATE_RSA)
if (crypto_rsa_public_decrypt(encsig, siglen, TSSK_KEY_LENGTH, tssk_modulus, tssk_exponent,
if (crypto_rsa_public_decrypt(encsig, siglen - 8, TSSK_KEY_LENGTH, tssk_modulus, tssk_exponent,
sig) <= 0)
{
WLog_ERR(TAG, "invalid RSA decrypt");

View File

@ -80,7 +80,7 @@ PTP_CLEANUP_GROUP winpr_CreateThreadpoolCleanupGroup(void)
}
VOID winpr_SetThreadpoolCallbackCleanupGroup(PTP_CALLBACK_ENVIRON pcbe, PTP_CLEANUP_GROUP ptpcg,
PTP_CLEANUP_GROUP_CANCEL_CALLBACK pfng)
PTP_CLEANUP_GROUP_CANCEL_CALLBACK pfng)
{
pcbe->CleanupGroup = ptpcg;
pcbe->CleanupGroupCancelCallback = pfng;
@ -128,7 +128,9 @@ VOID winpr_CloseThreadpoolCleanupGroup(PTP_CLEANUP_GROUP ptpcg)
if (ptpcg && ptpcg->groups)
ArrayList_Free(ptpcg->groups);
ptpcg->env->CleanupGroup = NULL;
if (ptpcg && ptpcg->env)
ptpcg->env->CleanupGroup = NULL;
free(ptpcg);
#endif
}

View File

@ -58,7 +58,7 @@ static BOOL test2(void)
int index;
PTP_POOL pool;
PTP_WORK work;
PTP_CLEANUP_GROUP cleanupGroup;
PTP_CLEANUP_GROUP cleanupGroup = NULL;
TP_CALLBACK_ENVIRON environment;
printf("Private Thread Pool\n");

View File

@ -12,7 +12,7 @@ int TestAcquireCredentialsHandle(int argc, char* argv[])
{
int rc = -1;
SECURITY_STATUS status;
CredHandle credentials;
CredHandle credentials = { 0 };
TimeStamp expiration;
SEC_WINNT_AUTH_IDENTITY identity;
SecurityFunctionTable* table;

View File

@ -17,7 +17,7 @@ int TestInitializeSecurityContext(int argc, char* argv[])
CtxtHandle context;
ULONG pfContextAttr;
SECURITY_STATUS status;
CredHandle credentials;
CredHandle credentials = { 0 };
TimeStamp expiration;
PSecPkgInfo pPackageInfo;
SEC_WINNT_AUTH_IDENTITY identity = { 0 };