From 88d310ff2c9f6d7dcbf53c1fe689968c25166899 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Thu, 18 Oct 2018 09:09:30 +0200 Subject: [PATCH] Fixed compiler warnings (casts, ...) --- client/common/cmdline.c | 4 ++-- libfreerdp/core/gateway/http.c | 22 +++++++++++----------- libfreerdp/core/gateway/ncacn_http.c | 2 +- libfreerdp/core/gateway/rpc_client.c | 10 +++++++--- libfreerdp/core/gateway/tsg.c | 12 ++++++++++-- libfreerdp/core/tcp.c | 2 +- libfreerdp/gdi/gdi.c | 2 +- server/Sample/sf_audin.c | 8 +++++--- 8 files changed, 38 insertions(+), 24 deletions(-) diff --git a/client/common/cmdline.c b/client/common/cmdline.c index c3c0bc1..d888014 100644 --- a/client/common/cmdline.c +++ b/client/common/cmdline.c @@ -1758,7 +1758,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, } CommandLineSwitchCase(arg, "relax-order-checks") { - settings->AllowUnanouncedOrdersFromServer = arg->Value; + settings->AllowUnanouncedOrdersFromServer = enable; } CommandLineSwitchCase(arg, "restricted-admin") { @@ -2055,7 +2055,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings, } CommandLineSwitchCase(arg, "load-balance-info") { - if (!copy_value(arg->Value, &settings->LoadBalanceInfo)) + if (!copy_value(arg->Value, (char**)&settings->LoadBalanceInfo)) return COMMAND_LINE_ERROR_MEMORY; settings->LoadBalanceInfoLength = (UINT32) strlen((char*) diff --git a/libfreerdp/core/gateway/http.c b/libfreerdp/core/gateway/http.c index 2d4e93d..6920d98 100644 --- a/libfreerdp/core/gateway/http.c +++ b/libfreerdp/core/gateway/http.c @@ -84,7 +84,7 @@ struct _http_response wStream* data; }; -static char* string_strnstr(const char* str1, const char* str2, size_t slen) +static char* string_strnstr(char* str1, const char* str2, size_t slen) { char c, sc; size_t len; @@ -110,10 +110,10 @@ static char* string_strnstr(const char* str1, const char* str2, size_t slen) str1--; } - return ((char*) str1); + return str1; } -static BOOL strings_equals_nocase(void* obj1, void* obj2) +static BOOL strings_equals_nocase(const void* obj1, const void* obj2) { if (!obj1 || !obj2) return FALSE; @@ -362,7 +362,7 @@ static BOOL http_encode_print(wStream* s, const char* fmt, ...) { char* str; va_list ap; - size_t length, used; + int length, used; if (!s || !fmt) return FALSE; @@ -371,19 +371,19 @@ static BOOL http_encode_print(wStream* s, const char* fmt, ...) length = vsnprintf(NULL, 0, fmt, ap) + 1; va_end(ap); - if (!Stream_EnsureRemainingCapacity(s, length)) + if (!Stream_EnsureRemainingCapacity(s, (size_t)length)) return FALSE; str = (char*)Stream_Pointer(s); va_start(ap, fmt); - used = vsnprintf(str, length, fmt, ap); + used = vsnprintf(str, (size_t)length, fmt, ap); va_end(ap); /* Strip the trailing '\0' from the string. */ if ((used + 1) != length) return FALSE; - Stream_Seek(s, used); + Stream_Seek(s, (size_t)used); return TRUE; } @@ -571,7 +571,7 @@ static BOOL http_response_parse_header_field(HttpResponse* response, const char* { char* separator = NULL; const char* authScheme = NULL; - const char* authValue = NULL; + char* authValue = NULL; separator = strchr(value, ' '); if (separator) @@ -746,7 +746,7 @@ HttpResponse* http_response_recv(rdpTls* tls) const char* line = string_strnstr(buffer, "\r\n\r\n", position); if (line) - payloadOffset = (line - buffer) + 4; + payloadOffset = (line - buffer) + 4UL; } } @@ -756,7 +756,7 @@ HttpResponse* http_response_recv(rdpTls* tls) char* buffer = (char*)Stream_Buffer(response->data); char* line = (char*) Stream_Buffer(response->data); - while ((line = string_strnstr(line, "\r\n", payloadOffset - (line - buffer) - 2))) + while ((line = string_strnstr(line, "\r\n", payloadOffset - (line - buffer) - 2UL))) { line += 2; count++; @@ -832,7 +832,7 @@ HttpResponse* http_response_recv(rdpTls* tls) } Stream_Seek(response->data, (size_t)status); - response->BodyLength += status; + response->BodyLength += (unsigned long)status; if (response->BodyLength > RESPONSE_SIZE_LIMIT) { diff --git a/libfreerdp/core/gateway/ncacn_http.c b/libfreerdp/core/gateway/ncacn_http.c index b91f28e..a1c8916 100644 --- a/libfreerdp/core/gateway/ncacn_http.c +++ b/libfreerdp/core/gateway/ncacn_http.c @@ -32,7 +32,7 @@ #define TAG FREERDP_TAG("core.gateway.ntlm") static wStream* rpc_ntlm_http_request(HttpContext* http, const char* method, - int contentLength, SecBuffer* ntlmToken) + int contentLength, const SecBuffer* ntlmToken) { wStream* s = NULL; HttpRequest* request = NULL; diff --git a/libfreerdp/core/gateway/rpc_client.c b/libfreerdp/core/gateway/rpc_client.c index 1dd1850..f923f05 100644 --- a/libfreerdp/core/gateway/rpc_client.c +++ b/libfreerdp/core/gateway/rpc_client.c @@ -838,6 +838,11 @@ void rpc_client_call_free(RpcClientCall* clientCall) free(clientCall); } +static void rpc_array_client_call_free(void* call) +{ + rpc_client_call_free((RpcClientCall*)call); +} + int rpc_in_channel_send_pdu(RpcInChannel* inChannel, BYTE* buffer, UINT32 length) { int status; @@ -870,7 +875,6 @@ int rpc_in_channel_send_pdu(RpcInChannel* inChannel, BYTE* buffer, UINT32 length BOOL rpc_client_write_call(rdpRpc* rpc, wStream* s, UINT16 opnum) { - SECURITY_STATUS status; UINT32 offset; BYTE* buffer = NULL; UINT32 stub_data_pad; @@ -1021,7 +1025,7 @@ static BOOL rpc_client_resolve_gateway(rdpSettings* settings, char** host, UINT1 if (!result) return FALSE; - *host = freerdp_tcp_address_to_string(result->ai_addr, NULL); + *host = freerdp_tcp_address_to_string((const struct sockaddr_storage*)result->ai_addr, NULL); freeaddrinfo(result); return TRUE; } @@ -1068,7 +1072,7 @@ RpcClient* rpc_client_new(rdpContext* context, UINT32 max_recv_frag) if (!client->ClientCallList) goto fail; - ArrayList_Object(client->ClientCallList)->fnObjectFree = rpc_client_call_free; + ArrayList_Object(client->ClientCallList)->fnObjectFree = rpc_array_client_call_free; return client; fail: rpc_client_free(client); diff --git a/libfreerdp/core/gateway/tsg.c b/libfreerdp/core/gateway/tsg.c index 45a7c19..899743a 100644 --- a/libfreerdp/core/gateway/tsg.c +++ b/libfreerdp/core/gateway/tsg.c @@ -602,7 +602,11 @@ static BOOL TsProxyCreateTunnelReadResponse(rdpTsg* tsg, RPC_PDU* pdu, versionCaps->quarantineCapabilities); /* QuarantineCapabilities (2 bytes) */ /* 4-byte alignment */ { - UINT32 offset = Stream_Pointer(pdu->s); + size_t loffset = Stream_GetPosition(pdu->s); + UINT32 offset = (UINT32) loffset; + + if (loffset > UINT32_MAX) + goto fail; if (!Stream_SafeSeek(pdu->s, rpc_offset_align(&offset, 4))) goto fail; @@ -666,7 +670,11 @@ static BOOL TsProxyCreateTunnelReadResponse(rdpTsg* tsg, RPC_PDU* pdu, case TSG_ASYNC_MESSAGE_REAUTH: { - UINT32 offset = Stream_Pointer(pdu->s); + size_t loffset = Stream_GetPosition(pdu->s); + UINT32 offset = (UINT32)loffset; + + if (loffset > UINT32_MAX) + goto fail; if (!Stream_SafeSeek(pdu->s, rpc_offset_align(&offset, 8) || (Stream_GetRemainingLength(pdu->s) < 8))) diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index b425bdb..69c9c26 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -1199,7 +1199,7 @@ int freerdp_tcp_connect(rdpContext* context, rdpSettings* settings, return -1; } - if ((peerAddress = freerdp_tcp_address_to_string((struct sockaddr_storage*)addr->ai_addr, + if ((peerAddress = freerdp_tcp_address_to_string((const struct sockaddr_storage*)addr->ai_addr, NULL)) != NULL) { WLog_DBG(TAG, "connecting to peer %s", peerAddress); diff --git a/libfreerdp/gdi/gdi.c b/libfreerdp/gdi/gdi.c index 02c9f91..8b5184b 100644 --- a/libfreerdp/gdi/gdi.c +++ b/libfreerdp/gdi/gdi.c @@ -574,7 +574,7 @@ static BOOL gdi_dstblt(rdpContext* context, const DSTBLT_ORDER* dstblt) gdi_rop3_code(dstblt->bRop), &gdi->palette); } -static BOOL gdi_patblt(rdpContext* context, const PATBLT_ORDER* patblt) +static BOOL gdi_patblt(rdpContext* context, PATBLT_ORDER* patblt) { const rdpBrush* brush = &patblt->brush; UINT32 foreColor; diff --git a/server/Sample/sf_audin.c b/server/Sample/sf_audin.c index 022b5bc..c4ee5fd 100644 --- a/server/Sample/sf_audin.c +++ b/server/Sample/sf_audin.c @@ -29,6 +29,7 @@ #include "sf_audin.h" +#include #include #define TAG SERVER_TAG("sample") @@ -61,10 +62,11 @@ static UINT sf_peer_audin_open_result(audin_server_context* context, UINT32 resu * * @return 0 on success, otherwise a Win32 error code */ -static UINT sf_peer_audin_receive_samples(audin_server_context* context, const void* buf, - int nframes) +static UINT sf_peer_audin_receive_samples(audin_server_context* context, + const AUDIO_FORMAT* format, wStream* buf, + size_t nframes) { - WLog_DBG(TAG, "AUDIN receive %d frames.", nframes); + WLog_DBG(TAG, "AUDIN receive %"PRIdz" frames.", nframes); return CHANNEL_RC_OK; } -- 2.7.4