From 83f2f21ad32270bd4b908a1d7104927e3aafe4e5 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Mon, 25 Nov 2024 15:10:30 +0100 Subject: [PATCH] [warnigns] fix lots of bugprone warnings * update-settings-tests: properly cast types in getter/setter * wtypes: fix PHANDLE definition * wStream: fix INT64 write function warnings * Simplify HANDLE copy in channels, just assign after proper cast --- channels/ainput/server/ainput_main.c | 2 +- channels/audin/server/audin.c | 2 +- channels/client/addin.c | 2 +- channels/cliprdr/server/cliprdr_main.c | 2 +- channels/disp/server/disp_main.c | 2 +- channels/echo/server/echo_main.c | 2 +- channels/encomsp/server/encomsp_main.c | 2 +- channels/location/server/location_main.c | 2 +- channels/printer/client/cups/printer_cups.c | 2 +- channels/rail/server/rail_main.c | 2 +- channels/rdpdr/server/rdpdr_main.c | 2 +- channels/rdpear/common/rdpear_common.c | 2 +- channels/rdpear/common/test/TestNdr.c | 3 +- .../server/camera_device_enumerator_main.c | 2 +- channels/rdpecam/server/camera_device_main.c | 2 +- channels/rdpei/server/rdpei_main.c | 2 +- channels/rdpemsc/server/mouse_cursor_main.c | 2 +- channels/rdpgfx/server/rdpgfx_main.c | 2 +- channels/rdpsnd/server/rdpsnd_main.c | 2 +- channels/remdesk/server/remdesk_main.c | 2 +- channels/serial/client/serial_main.c | 4 +- channels/telemetry/server/telemetry_main.c | 2 +- channels/tsmf/client/pulse/tsmf_pulse.c | 8 +- .../urbdrc/client/libusb/libusb_udevman.c | 2 +- channels/urbdrc/common/msusb.c | 8 +- client/SDL/SDL2/dialogs/sdl_input_widgets.cpp | 7 +- client/X11/xf_input.c | 2 +- client/common/cmdline.c | 11 +- libfreerdp/cache/bitmap.c | 2 +- libfreerdp/cache/glyph.c | 2 +- libfreerdp/cache/offscreen.c | 2 +- libfreerdp/cache/pointer.c | 2 +- libfreerdp/codec/planar.c | 6 +- libfreerdp/codec/progressive.c | 6 +- libfreerdp/codec/rfx.c | 11 +- libfreerdp/codec/yuv.c | 7 +- libfreerdp/common/settings.c | 55 ++++---- libfreerdp/common/settings_getters.c | 120 +++++++++--------- libfreerdp/core/childsession.c | 2 +- libfreerdp/core/gateway/arm.c | 2 +- libfreerdp/core/gateway/http.c | 2 +- libfreerdp/core/license.c | 5 +- libfreerdp/core/redirection.c | 4 +- libfreerdp/core/server.c | 4 +- libfreerdp/core/settings.c | 4 +- libfreerdp/core/smartcardlogon.c | 10 +- libfreerdp/core/tcp.c | 4 +- libfreerdp/core/window.c | 8 +- libfreerdp/crypto/x509_utils.c | 23 ++-- libfreerdp/emu/scard/smartcard_emulate.c | 2 +- .../primitives/opencl/prim_YUV_opencl.c | 6 +- libfreerdp/utils/passphrase.c | 2 + server/proxy/pf_server.c | 2 +- server/shadow/shadow_encoder.c | 2 +- tools/update-settings-tests | 55 ++++++-- winpr/include/winpr/debug.h | 1 + winpr/include/winpr/stream.h | 20 ++- winpr/libwinpr/comm/comm.c | 2 +- winpr/libwinpr/environment/environment.c | 2 +- winpr/libwinpr/synch/test/TestSynchCritical.c | 2 +- winpr/libwinpr/thread/process.c | 4 +- .../thread/test/TestThreadCommandLineToArgv.c | 2 +- winpr/libwinpr/timezone/timezone.c | 4 +- winpr/libwinpr/utils/cmdline.c | 2 +- winpr/libwinpr/utils/collections/ArrayList.c | 12 +- winpr/libwinpr/utils/collections/BufferPool.c | 4 +- winpr/libwinpr/utils/collections/HashTable.c | 4 +- winpr/libwinpr/utils/collections/ObjectPool.c | 4 +- winpr/libwinpr/utils/collections/PubSub.c | 3 +- winpr/libwinpr/utils/collections/Queue.c | 10 +- winpr/libwinpr/utils/collections/Stack.c | 4 +- winpr/libwinpr/utils/collections/StreamPool.c | 14 +- winpr/libwinpr/utils/debug.c | 4 +- winpr/libwinpr/utils/execinfo/debug.c | 4 +- winpr/libwinpr/utils/image.c | 10 +- winpr/libwinpr/utils/ini.c | 12 +- winpr/libwinpr/utils/strlst.c | 4 +- winpr/libwinpr/utils/test/TestBacktrace.c | 2 +- winpr/libwinpr/utils/test/TestCmdLine.c | 10 +- winpr/libwinpr/utils/test/TestIni.c | 12 +- winpr/libwinpr/utils/unwind/debug.c | 5 +- winpr/libwinpr/utils/unwind/debug.h | 2 + winpr/libwinpr/utils/wlog/JournaldAppender.c | 2 +- winpr/libwinpr/utils/wlog/wlog.c | 22 ++-- 84 files changed, 341 insertions(+), 277 deletions(-) diff --git a/channels/ainput/server/ainput_main.c b/channels/ainput/server/ainput_main.c index a6183e05f..9dca2f72a 100644 --- a/channels/ainput/server/ainput_main.c +++ b/channels/ainput/server/ainput_main.c @@ -226,7 +226,7 @@ static HANDLE ainput_server_get_channel_handle(ainput_server* ainput) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/audin/server/audin.c b/channels/audin/server/audin.c index 0ea728d9d..d3b1fbd0d 100644 --- a/channels/audin/server/audin.c +++ b/channels/audin/server/audin.c @@ -277,7 +277,7 @@ static DWORD WINAPI audin_server_thread_func(LPVOID arg) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/client/addin.c b/channels/client/addin.c index 4b9bf624b..ee354d61f 100644 --- a/channels/client/addin.c +++ b/channels/client/addin.c @@ -430,7 +430,7 @@ void freerdp_channels_addin_list_free(FREERDP_ADDIN** ppAddins) for (size_t index = 0; ppAddins[index] != NULL; index++) free(ppAddins[index]); - free(ppAddins); + free((void*)ppAddins); } extern const STATIC_ENTRY CLIENT_VirtualChannelEntryEx_TABLE[]; diff --git a/channels/cliprdr/server/cliprdr_main.c b/channels/cliprdr/server/cliprdr_main.c index 9467f9ded..3cfa057e3 100644 --- a/channels/cliprdr/server/cliprdr_main.c +++ b/channels/cliprdr/server/cliprdr_main.c @@ -1322,7 +1322,7 @@ static UINT cliprdr_server_open(CliprdrServerContext* context) return ERROR_INTERNAL_ERROR; } - CopyMemory(&(cliprdr->ChannelEvent), buffer, sizeof(HANDLE)); + cliprdr->ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/disp/server/disp_main.c b/channels/disp/server/disp_main.c index a80c11d76..410841cec 100644 --- a/channels/disp/server/disp_main.c +++ b/channels/disp/server/disp_main.c @@ -453,7 +453,7 @@ static UINT disp_server_open(DispServerContext* context) goto out_close; } - CopyMemory(&priv->channelEvent, buffer, sizeof(HANDLE)); + priv->channelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); if (priv->thread == NULL) diff --git a/channels/echo/server/echo_main.c b/channels/echo/server/echo_main.c index 50638890b..7a00e3170 100644 --- a/channels/echo/server/echo_main.c +++ b/channels/echo/server/echo_main.c @@ -155,7 +155,7 @@ static DWORD WINAPI echo_server_thread_func(LPVOID arg) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/encomsp/server/encomsp_main.c b/channels/encomsp/server/encomsp_main.c index c002db43c..49181f508 100644 --- a/channels/encomsp/server/encomsp_main.c +++ b/channels/encomsp/server/encomsp_main.c @@ -198,7 +198,7 @@ static DWORD WINAPI encomsp_server_thread(LPVOID arg) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/location/server/location_main.c b/channels/location/server/location_main.c index e7a505217..4c0bd8c5e 100644 --- a/channels/location/server/location_main.c +++ b/channels/location/server/location_main.c @@ -375,7 +375,7 @@ static HANDLE location_server_get_channel_handle(location_server* location) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/printer/client/cups/printer_cups.c b/channels/printer/client/cups/printer_cups.c index af51a0211..76b418a85 100644 --- a/channels/printer/client/cups/printer_cups.c +++ b/channels/printer/client/cups/printer_cups.c @@ -347,7 +347,7 @@ static void printer_cups_release_enum_printers(rdpPrinter** printers) (*cur)->ReleaseRef(*cur); cur++; } - free(printers); + free((void*)printers); } static rdpPrinter** printer_cups_enum_printers(rdpPrinterDriver* driver) diff --git a/channels/rail/server/rail_main.c b/channels/rail/server/rail_main.c index 299451e54..0bab1925a 100644 --- a/channels/rail/server/rail_main.c +++ b/channels/rail/server/rail_main.c @@ -1439,7 +1439,7 @@ static UINT rail_server_start(RailServerContext* context) goto out_close; } - CopyMemory(&priv->channelEvent, buffer, sizeof(HANDLE)); + priv->channelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); context->priv->stopEvent = CreateEvent(NULL, TRUE, FALSE, NULL); diff --git a/channels/rdpdr/server/rdpdr_main.c b/channels/rdpdr/server/rdpdr_main.c index 3822f6bfc..24eacbbe8 100644 --- a/channels/rdpdr/server/rdpdr_main.c +++ b/channels/rdpdr/server/rdpdr_main.c @@ -2020,7 +2020,7 @@ static DWORD WINAPI rdpdr_server_thread(LPVOID arg) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/rdpear/common/rdpear_common.c b/channels/rdpear/common/rdpear_common.c index cf4a195b8..6f80270ba 100644 --- a/channels/rdpear/common/rdpear_common.c +++ b/channels/rdpear/common/rdpear_common.c @@ -182,7 +182,7 @@ BOOL ndr_read_RPC_UNICODE_STRING(NdrContext* context, wStream* s, const void* hi RPC_UNICODE_STRING* res) { NdrDeferredEntry bufferDesc = { NDR_PTR_NULL, "RPC_UNICODE_STRING.Buffer", &res->lenHints, - &res->Buffer, ndr_uint16VaryingArray_descr() }; + (void*)&res->Buffer, ndr_uint16VaryingArray_descr() }; UINT16 Length = 0; UINT16 MaximumLength = 0; diff --git a/channels/rdpear/common/test/TestNdr.c b/channels/rdpear/common/test/TestNdr.c index 624a72cbe..934ff11c5 100644 --- a/channels/rdpear/common/test/TestNdr.c +++ b/channels/rdpear/common/test/TestNdr.c @@ -21,7 +21,8 @@ int TestNdr(int argc, char* argv[]) BYTE* target = NULL; NdrArrayHints hints = { 2 }; - NdrDeferredEntry e = { 0x020028, "arrayContent", &hints, &target, ndr_uint8Array_descr() }; + NdrDeferredEntry e = { 0x020028, "arrayContent", &hints, (void*)&target, + ndr_uint8Array_descr() }; if (!ndr_push_deferreds(context, &e, 1)) goto out; diff --git a/channels/rdpecam/server/camera_device_enumerator_main.c b/channels/rdpecam/server/camera_device_enumerator_main.c index 79c18bd4f..0b6b51b7a 100644 --- a/channels/rdpecam/server/camera_device_enumerator_main.c +++ b/channels/rdpecam/server/camera_device_enumerator_main.c @@ -367,7 +367,7 @@ static HANDLE enumerator_server_get_channel_handle(enumerator_server* enumerator &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/rdpecam/server/camera_device_main.c b/channels/rdpecam/server/camera_device_main.c index 535d38d5a..fb7e20d96 100644 --- a/channels/rdpecam/server/camera_device_main.c +++ b/channels/rdpecam/server/camera_device_main.c @@ -520,7 +520,7 @@ static HANDLE device_server_get_channel_handle(device_server* device) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/rdpei/server/rdpei_main.c b/channels/rdpei/server/rdpei_main.c index 601ea86d6..b9d574a4d 100644 --- a/channels/rdpei/server/rdpei_main.c +++ b/channels/rdpei/server/rdpei_main.c @@ -130,7 +130,7 @@ UINT rdpei_server_init(RdpeiServerContext* context) WTSFreeMemory(buffer); goto out_close; } - CopyMemory(&priv->eventHandle, buffer, sizeof(HANDLE)); + priv->eventHandle = *(HANDLE*)buffer; WTSFreeMemory(buffer); return CHANNEL_RC_OK; diff --git a/channels/rdpemsc/server/mouse_cursor_main.c b/channels/rdpemsc/server/mouse_cursor_main.c index 6aca3680a..861f2de45 100644 --- a/channels/rdpemsc/server/mouse_cursor_main.c +++ b/channels/rdpemsc/server/mouse_cursor_main.c @@ -324,7 +324,7 @@ static HANDLE mouse_cursor_server_get_channel_handle(mouse_cursor_server* mouse_ &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/rdpgfx/server/rdpgfx_main.c b/channels/rdpgfx/server/rdpgfx_main.c index 4eafba3b2..7939f977e 100644 --- a/channels/rdpgfx/server/rdpgfx_main.c +++ b/channels/rdpgfx/server/rdpgfx_main.c @@ -1589,7 +1589,7 @@ static BOOL rdpgfx_server_open(RdpgfxServerContext* context) goto fail; } - CopyMemory(&priv->channelEvent, buffer, sizeof(HANDLE)); + priv->channelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); if (!(priv->zgfx = zgfx_context_new(TRUE))) diff --git a/channels/rdpsnd/server/rdpsnd_main.c b/channels/rdpsnd/server/rdpsnd_main.c index 4d49f9050..390b6a74e 100644 --- a/channels/rdpsnd/server/rdpsnd_main.c +++ b/channels/rdpsnd/server/rdpsnd_main.c @@ -928,7 +928,7 @@ static UINT rdpsnd_server_start(RdpsndServerContext* context) goto out_close; } - CopyMemory(&priv->channelEvent, buffer, sizeof(HANDLE)); + priv->channelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); priv->rdpsnd_pdu = Stream_New(NULL, 4096); diff --git a/channels/remdesk/server/remdesk_main.c b/channels/remdesk/server/remdesk_main.c index a8018e1d9..7a45f09dc 100644 --- a/channels/remdesk/server/remdesk_main.c +++ b/channels/remdesk/server/remdesk_main.c @@ -460,7 +460,7 @@ static DWORD WINAPI remdesk_server_thread(LPVOID arg) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/serial/client/serial_main.c b/channels/serial/client/serial_main.c index 61c30ba6c..ac75d3f99 100644 --- a/channels/serial/client/serial_main.c +++ b/channels/serial/client/serial_main.c @@ -50,7 +50,7 @@ typedef struct DEVICE device; BOOL permissive; SERIAL_DRIVER_ID ServerSerialDriverId; - HANDLE* hComm; + HANDLE hComm; wLog* log; HANDLE MainThread; @@ -790,7 +790,7 @@ static UINT serial_free(DEVICE* device) } if (serial->hComm) - (void)CloseHandle(*serial->hComm); + (void)CloseHandle(serial->hComm); /* Clean up resources */ Stream_Free(serial->device.data, TRUE); diff --git a/channels/telemetry/server/telemetry_main.c b/channels/telemetry/server/telemetry_main.c index e6d759ffc..1553f64c5 100644 --- a/channels/telemetry/server/telemetry_main.c +++ b/channels/telemetry/server/telemetry_main.c @@ -244,7 +244,7 @@ static HANDLE telemetry_server_get_channel_handle(telemetry_server* telemetry) &BytesReturned) == TRUE) { if (BytesReturned == sizeof(HANDLE)) - CopyMemory(&ChannelEvent, buffer, sizeof(HANDLE)); + ChannelEvent = *(HANDLE*)buffer; WTSFreeMemory(buffer); } diff --git a/channels/tsmf/client/pulse/tsmf_pulse.c b/channels/tsmf/client/pulse/tsmf_pulse.c index d580a243a..b5b9f033f 100644 --- a/channels/tsmf/client/pulse/tsmf_pulse.c +++ b/channels/tsmf/client/pulse/tsmf_pulse.c @@ -244,8 +244,8 @@ static BOOL tsmf_pulse_open_stream(TSMFPulseAudioDevice* pulse) pa_stream_set_state_callback(pulse->stream, tsmf_pulse_stream_state_callback, pulse); pa_stream_set_write_callback(pulse->stream, tsmf_pulse_stream_request_callback, pulse); - buffer_attr.maxlength = pa_usec_to_bytes(500000, &pulse->sample_spec); - buffer_attr.tlength = pa_usec_to_bytes(250000, &pulse->sample_spec); + buffer_attr.maxlength = (uint32_t)pa_usec_to_bytes(500000, &pulse->sample_spec); + buffer_attr.tlength = (uint32_t)pa_usec_to_bytes(250000, &pulse->sample_spec); buffer_attr.prebuf = (UINT32)-1; buffer_attr.minreq = (UINT32)-1; buffer_attr.fragsize = (UINT32)-1; @@ -297,7 +297,9 @@ static BOOL tsmf_pulse_set_format(ITSMFAudioDevice* audio, UINT32 sample_rate, U DEBUG_TSMF("sample_rate %" PRIu32 " channels %" PRIu32 " bits_per_sample %" PRIu32 "", sample_rate, channels, bits_per_sample); pulse->sample_spec.rate = sample_rate; - pulse->sample_spec.channels = channels; + + WINPR_ASSERT(channels <= UINT8_MAX); + pulse->sample_spec.channels = (uint8_t)channels; pulse->sample_spec.format = PA_SAMPLE_S16LE; return tsmf_pulse_open_stream(pulse); } diff --git a/channels/urbdrc/client/libusb/libusb_udevman.c b/channels/urbdrc/client/libusb/libusb_udevman.c index fc9edc627..f1ec6aea2 100644 --- a/channels/urbdrc/client/libusb/libusb_udevman.c +++ b/channels/urbdrc/client/libusb/libusb_udevman.c @@ -235,7 +235,7 @@ static size_t udevman_register_udevice(IUDEVMAN* idevman, BYTE bus_number, BYTE addnum++; } - free(devArray); + free((void*)devArray); return addnum; } else diff --git a/channels/urbdrc/common/msusb.c b/channels/urbdrc/common/msusb.c index 72619beef..9515e2bfd 100644 --- a/channels/urbdrc/common/msusb.c +++ b/channels/urbdrc/common/msusb.c @@ -39,7 +39,7 @@ static void msusb_mspipes_free(MSUSB_PIPE_DESCRIPTOR** MsPipes, UINT32 NumberOfP for (UINT32 pnum = 0; pnum < NumberOfPipes && MsPipes[pnum]; pnum++) free(MsPipes[pnum]); - free(MsPipes); + free((void*)MsPipes); } } @@ -96,7 +96,7 @@ out_error: for (UINT32 pnum = 0; pnum < NumberOfPipes; pnum++) free(MsPipes[pnum]); - free(MsPipes); + free((void*)MsPipes); return NULL; } @@ -125,7 +125,7 @@ static void msusb_msinterface_free_list(MSUSB_INTERFACE_DESCRIPTOR** MsInterface msusb_msinterface_free(MsInterfaces[inum]); } - free(MsInterfaces); + free((void*)MsInterfaces); } } @@ -256,7 +256,7 @@ fail: for (UINT32 inum = 0; inum < NumInterfaces; inum++) msusb_msinterface_free(MsInterfaces[inum]); - free(MsInterfaces); + free((void*)MsInterfaces); return NULL; } diff --git a/client/SDL/SDL2/dialogs/sdl_input_widgets.cpp b/client/SDL/SDL2/dialogs/sdl_input_widgets.cpp index 0b837367d..f71c47d88 100644 --- a/client/SDL/SDL2/dialogs/sdl_input_widgets.cpp +++ b/client/SDL/SDL2/dialogs/sdl_input_widgets.cpp @@ -1,4 +1,5 @@ #include +#include #include #include @@ -26,7 +27,7 @@ SdlInputWidgetList::SdlInputWidgetList(const std::string& title, assert(total_width <= INT32_MAX); assert(total_height <= INT32_MAX); - auto wflags = SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_MOUSE_FOCUS | SDL_WINDOW_INPUT_FOCUS; + Uint32 wflags = SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_MOUSE_FOCUS | SDL_WINDOW_INPUT_FOCUS; auto rc = SDL_CreateWindowAndRenderer(static_cast(total_width), static_cast(total_height), wflags, &_window, &_renderer); @@ -116,13 +117,15 @@ ssize_t SdlInputWidgetList::get_index(const SDL_MouseButtonEvent& button) { const Sint32 x = button.x; const Sint32 y = button.y; + + assert(_list.size() <= std::numeric_limits::max()); for (size_t i = 0; i < _list.size(); i++) { auto& cur = _list[i]; auto r = cur.input_rect(); if ((x >= r.x) && (x <= r.x + r.w) && (y >= r.y) && (y <= r.y + r.h)) - return i; + return static_cast(i); } return -1; } diff --git a/client/X11/xf_input.c b/client/X11/xf_input.c index 88b666c6e..95cf8615f 100644 --- a/client/X11/xf_input.c +++ b/client/X11/xf_input.c @@ -760,7 +760,7 @@ int xf_input_event(xfContext* xfc, const XEvent* xevent, XIDeviceEvent* event, i * filter out anything else, like floatbar window events */ const Window w = xevent->xany.window; - if (w != xfc->window) + if (w != xfc->window->handle) { if (!xfc->remote_app) return 0; diff --git a/client/common/cmdline.c b/client/common/cmdline.c index ea231d9cf..02554bad8 100644 --- a/client/common/cmdline.c +++ b/client/common/cmdline.c @@ -585,7 +585,7 @@ static COMMAND_LINE_ARGUMENT_A* create_merged_args(const COMMAND_LINE_ARGUMENT_A } COMMAND_LINE_ARGUMENT_A* largs = - calloc(count + ARRAYSIZE(global_cmd_args), sizeof(COMMAND_LINE_ARGUMENT_A)); + calloc((size_t)count + ARRAYSIZE(global_cmd_args), sizeof(COMMAND_LINE_ARGUMENT_A)); *pcount = 0; if (!largs) return NULL; @@ -3416,7 +3416,7 @@ static int parse_mouse_options(rdpSettings* settings, const COMMAND_LINE_ARGUMEN size_t count = 0; char** ptr = CommandLineParseCommaSeparatedValuesEx("mouse", arg->Value, &count); - UINT rc = 0; + int rc = 0; if (ptr) { for (size_t x = 1; x < count; x++) @@ -5519,7 +5519,7 @@ static void argv_free(int* pargc, char** pargv[]) return; for (int x = 0; x < argc; x++) free(argv[x]); - free(argv); + free((void*)argv); } static BOOL argv_append(int* pargc, char** pargv[], char* what) @@ -5534,7 +5534,7 @@ static BOOL argv_append(int* pargc, char** pargv[], char* what) return FALSE; int nargc = *pargc + 1; - char** tmp = realloc(*pargv, nargc * sizeof(char*)); + char** tmp = (char**)realloc((void*)*pargv, (size_t)nargc * sizeof(char*)); if (!tmp) return FALSE; @@ -5721,8 +5721,9 @@ int freerdp_client_settings_parse_command_line_arguments_ex( argv = aargv; } + WINPR_ASSERT(count <= SSIZE_MAX); size_t lcount = 0; - COMMAND_LINE_ARGUMENT_A* largs = create_merged_args(args, count, &lcount); + COMMAND_LINE_ARGUMENT_A* largs = create_merged_args(args, (SSIZE_T)count, &lcount); if (!largs) goto fail; diff --git a/libfreerdp/cache/bitmap.c b/libfreerdp/cache/bitmap.c index 24c6da953..6b6463ca1 100644 --- a/libfreerdp/cache/bitmap.c +++ b/libfreerdp/cache/bitmap.c @@ -419,7 +419,7 @@ void bitmap_cache_free(rdpBitmapCache* bitmapCache) Bitmap_Free(bitmapCache->context, bitmap); } - free(cell->entries); + free((void*)cell->entries); } free(bitmapCache->cells); diff --git a/libfreerdp/cache/glyph.c b/libfreerdp/cache/glyph.c index 6ebe5b746..d0935c13f 100644 --- a/libfreerdp/cache/glyph.c +++ b/libfreerdp/cache/glyph.c @@ -740,7 +740,7 @@ void glyph_cache_free(rdpGlyphCache* glyphCache) } } - free(entries); + free((void*)entries); cache[i].entries = NULL; } diff --git a/libfreerdp/cache/offscreen.c b/libfreerdp/cache/offscreen.c index da41a98f5..36e997a06 100644 --- a/libfreerdp/cache/offscreen.c +++ b/libfreerdp/cache/offscreen.c @@ -236,7 +236,7 @@ void offscreen_cache_free(rdpOffscreenCache* offscreenCache) } } - free(offscreenCache->entries); + free((void*)offscreenCache->entries); free(offscreenCache); } } diff --git a/libfreerdp/cache/pointer.c b/libfreerdp/cache/pointer.c index 96c292afb..d5be0d543 100644 --- a/libfreerdp/cache/pointer.c +++ b/libfreerdp/cache/pointer.c @@ -386,7 +386,7 @@ void pointer_cache_free(rdpPointerCache* pointer_cache) } } - free(pointer_cache->entries); + free((void*)pointer_cache->entries); free(pointer_cache); } } diff --git a/libfreerdp/codec/planar.c b/libfreerdp/codec/planar.c index 17a3f5f11..32f193695 100644 --- a/libfreerdp/codec/planar.c +++ b/libfreerdp/codec/planar.c @@ -1711,9 +1711,9 @@ BOOL freerdp_bitmap_planar_context_reset(BITMAP_PLANAR_CONTEXT* WINPR_RESTRICT c return FALSE; context->nTempStep = context->maxWidth * 4; - memset(context->planes, 0, sizeof(context->planes)); - memset(context->rlePlanes, 0, sizeof(context->rlePlanes)); - memset(context->deltaPlanes, 0, sizeof(context->deltaPlanes)); + memset((void*)context->planes, 0, sizeof(context->planes)); + memset((void*)context->rlePlanes, 0, sizeof(context->rlePlanes)); + memset((void*)context->deltaPlanes, 0, sizeof(context->deltaPlanes)); if (context->maxPlaneSize > 0) { diff --git a/libfreerdp/codec/progressive.c b/libfreerdp/codec/progressive.c index 2bf54a433..529ab8ac7 100644 --- a/libfreerdp/codec/progressive.c +++ b/libfreerdp/codec/progressive.c @@ -372,7 +372,7 @@ static void progressive_surface_context_free(void* ptr) } } - winpr_aligned_free(surface->tiles); + winpr_aligned_free((void*)surface->tiles); winpr_aligned_free(surface->updatedTileIndices); winpr_aligned_free(surface); } @@ -425,12 +425,12 @@ progressive_allocate_tile_cache(PROGRESSIVE_SURFACE_CONTEXT* WINPR_RESTRICT surf surface->gridSize += 1024; } - void* tmp = winpr_aligned_recalloc(surface->tiles, surface->gridSize, + void* tmp = winpr_aligned_recalloc((void*)surface->tiles, surface->gridSize, sizeof(RFX_PROGRESSIVE_TILE*), 32); if (!tmp) return FALSE; surface->tilesSize = surface->gridSize; - surface->tiles = tmp; + surface->tiles = (RFX_PROGRESSIVE_TILE**)tmp; for (size_t x = oldIndex; x < surface->tilesSize; x++) { diff --git a/libfreerdp/codec/rfx.c b/libfreerdp/codec/rfx.c index ee5ad6320..36a547417 100644 --- a/libfreerdp/codec/rfx.c +++ b/libfreerdp/codec/rfx.c @@ -372,7 +372,7 @@ void rfx_context_free(RFX_CONTEXT* context) if (priv->ThreadPool) CloseThreadpool(priv->ThreadPool); DestroyThreadpoolEnvironment(&priv->ThreadPoolEnv); - winpr_aligned_free(priv->workObjects); + winpr_aligned_free((void*)priv->workObjects); winpr_aligned_free(priv->tileWorkParams); #ifdef WITH_PROFILER WLog_VRB( @@ -813,7 +813,8 @@ static INLINE BOOL rfx_allocate_tiles(RFX_MESSAGE* WINPR_RESTRICT message, size_ { WINPR_ASSERT(message); - RFX_TILE** tmpTiles = winpr_aligned_recalloc(message->tiles, count, sizeof(RFX_TILE*), 32); + RFX_TILE** tmpTiles = + (RFX_TILE**)winpr_aligned_recalloc((void*)message->tiles, count, sizeof(RFX_TILE*), 32); if (!tmpTiles && (count != 0)) return FALSE; @@ -952,7 +953,7 @@ static INLINE BOOL rfx_process_message_tileset(RFX_CONTEXT* WINPR_RESTRICT conte if (!params) { - winpr_aligned_free(work_objects); + winpr_aligned_free((void*)work_objects); return FALSE; } } @@ -1112,7 +1113,7 @@ static INLINE BOOL rfx_process_message_tileset(RFX_CONTEXT* WINPR_RESTRICT conte } } - winpr_aligned_free(work_objects); + winpr_aligned_free((void*)work_objects); winpr_aligned_free(params); for (size_t i = 0; i < message->numTiles; i++) @@ -1618,7 +1619,7 @@ static INLINE BOOL setupWorkers(RFX_CONTEXT* WINPR_RESTRICT context, size_t nbTi if (!context->priv->UseThreads) return TRUE; - if (!(pmem = winpr_aligned_recalloc(priv->workObjects, nbTiles, sizeof(PTP_WORK), 32))) + if (!(pmem = winpr_aligned_recalloc((void*)priv->workObjects, nbTiles, sizeof(PTP_WORK), 32))) return FALSE; priv->workObjects = (PTP_WORK*)pmem; diff --git a/libfreerdp/codec/yuv.c b/libfreerdp/codec/yuv.c index 249522b33..5aeb7ed0e 100644 --- a/libfreerdp/codec/yuv.c +++ b/libfreerdp/codec/yuv.c @@ -207,12 +207,13 @@ BOOL yuv_context_reset(YUV_CONTEXT* WINPR_RESTRICT context, UINT32 width, UINT32 context->work_combined_params = ctmp; } - void* wtmp = winpr_aligned_recalloc(context->work_objects, count, sizeof(PTP_WORK), 32); + void* wtmp = + winpr_aligned_recalloc((void*)context->work_objects, count, sizeof(PTP_WORK), 32); if (!wtmp) goto fail; memset(wtmp, 0, count * sizeof(PTP_WORK)); - context->work_objects = wtmp; + context->work_objects = (PTP_WORK*)wtmp; context->work_object_count = count; } rc = TRUE; @@ -269,7 +270,7 @@ void yuv_context_free(YUV_CONTEXT* context) if (context->threadPool) CloseThreadpool(context->threadPool); DestroyThreadpoolEnvironment(&context->ThreadPoolEnv); - winpr_aligned_free(context->work_objects); + winpr_aligned_free((void*)context->work_objects); winpr_aligned_free(context->work_combined_params); winpr_aligned_free(context->work_enc_params); winpr_aligned_free(context->work_dec_params); diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 3f0573f54..02f502db6 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -51,7 +51,7 @@ BOOL freerdp_addin_argv_add_argument_ex(ADDIN_ARGV* args, const char* argument, if (len == 0) len = strlen(argument); - new_argv = (char**)realloc(args->argv, sizeof(char*) * (args->argc + 1)); + new_argv = (char**)realloc((void*)args->argv, sizeof(char*) * (args->argc + 1)); if (!new_argv) return FALSE; @@ -81,8 +81,8 @@ BOOL freerdp_addin_argv_del_argument(ADDIN_ARGV* args, const char* argument) if (strcmp(argument, arg) == 0) { free(arg); - memmove_s(&args->argv[x], (args->argc - x) * sizeof(char*), &args->argv[x + 1], - (args->argc - x - 1) * sizeof(char*)); + memmove_s((void*)&args->argv[x], (args->argc - x) * sizeof(char*), + (void*)&args->argv[x + 1], (args->argc - x - 1) * sizeof(char*)); args->argv[args->argc - 1] = NULL; args->argc--; return TRUE; @@ -221,13 +221,13 @@ BOOL freerdp_device_collection_add(rdpSettings* settings, RDPDR_DEVICE* device) new_size = count * 2; new_array = - (RDPDR_DEVICE**)realloc(settings->DeviceArray, new_size * sizeof(RDPDR_DEVICE*)); + (RDPDR_DEVICE**)realloc((void*)settings->DeviceArray, new_size * sizeof(RDPDR_DEVICE*)); if (!new_array) return FALSE; settings->DeviceArray = new_array; - memset(&settings->DeviceArray[old], 0, (new_size - old) * sizeof(RDPDR_DEVICE*)); + memset((void*)&settings->DeviceArray[old], 0, (new_size - old) * sizeof(RDPDR_DEVICE*)); if (!freerdp_settings_set_uint32(settings, FreeRDP_DeviceArraySize, new_size)) return FALSE; @@ -567,7 +567,7 @@ void freerdp_device_collection_free(rdpSettings* settings) (void)freerdp_settings_set_pointer_array(settings, FreeRDP_DeviceArray, index, NULL); } - free(settings->DeviceArray); + free((void*)settings->DeviceArray); (void)freerdp_settings_set_pointer(settings, FreeRDP_DeviceArray, NULL); (void)freerdp_settings_set_uint32(settings, FreeRDP_DeviceArraySize, 0); @@ -588,10 +588,12 @@ BOOL freerdp_static_channel_collection_del(rdpSettings* settings, const char* na if (strcmp(name, cur->argv[0]) == 0) { const size_t rem = settings->StaticChannelArraySize - count + 1; - memmove_s(&settings->StaticChannelArray[x], (count - x) * sizeof(ADDIN_ARGV*), - &settings->StaticChannelArray[x + 1], + memmove_s((void*)&settings->StaticChannelArray[x], + (count - x) * sizeof(ADDIN_ARGV*), + (void*)&settings->StaticChannelArray[x + 1], (count - x - 1) * sizeof(ADDIN_ARGV*)); - memset(&settings->StaticChannelArray[count - 1], 0, sizeof(ADDIN_ARGV*) * rem); + memset((void*)&settings->StaticChannelArray[count - 1], 0, + sizeof(ADDIN_ARGV*) * rem); freerdp_addin_argv_free(cur); return freerdp_settings_set_uint32(settings, FreeRDP_StaticChannelCount, count - 1); @@ -600,7 +602,7 @@ BOOL freerdp_static_channel_collection_del(rdpSettings* settings, const char* na } { const size_t rem = settings->StaticChannelArraySize - count; - memset(&settings->StaticChannelArray[count], 0, sizeof(ADDIN_ARGV*) * rem); + memset((void*)&settings->StaticChannelArray[count], 0, sizeof(ADDIN_ARGV*) * rem); } return FALSE; } @@ -622,8 +624,8 @@ BOOL freerdp_static_channel_collection_add(rdpSettings* settings, ADDIN_ARGV* ch if (new_size == 0) new_size = count * 2ul; - new_array = - (ADDIN_ARGV**)realloc(settings->StaticChannelArray, new_size * sizeof(ADDIN_ARGV*)); + new_array = (ADDIN_ARGV**)realloc((void*)settings->StaticChannelArray, + new_size * sizeof(ADDIN_ARGV*)); if (!new_array) return FALSE; @@ -631,7 +633,7 @@ BOOL freerdp_static_channel_collection_add(rdpSettings* settings, ADDIN_ARGV* ch settings->StaticChannelArray = new_array; { const size_t rem = new_size - oldSize; - memset(&settings->StaticChannelArray[oldSize], 0, sizeof(ADDIN_ARGV*) * rem); + memset((void*)&settings->StaticChannelArray[oldSize], 0, sizeof(ADDIN_ARGV*) * rem); } if (!freerdp_settings_set_uint32(settings, FreeRDP_StaticChannelArraySize, new_size)) return FALSE; @@ -676,7 +678,7 @@ void freerdp_static_channel_collection_free(rdpSettings* settings) freerdp_addin_argv_free(settings->StaticChannelArray[i]); } - free(settings->StaticChannelArray); + free((void*)settings->StaticChannelArray); (void)freerdp_settings_set_uint32(settings, FreeRDP_StaticChannelArraySize, 0); settings->StaticChannelArray = NULL; (void)freerdp_settings_set_uint32(settings, FreeRDP_StaticChannelCount, 0); @@ -696,10 +698,12 @@ BOOL freerdp_dynamic_channel_collection_del(rdpSettings* settings, const char* n if (strcmp(name, cur->argv[0]) == 0) { const size_t rem = settings->DynamicChannelArraySize - count + 1; - memmove_s(&settings->DynamicChannelArray[x], (count - x) * sizeof(ADDIN_ARGV*), - &settings->DynamicChannelArray[x + 1], + memmove_s((void*)&settings->DynamicChannelArray[x], + (count - x) * sizeof(ADDIN_ARGV*), + (void*)&settings->DynamicChannelArray[x + 1], (count - x - 1) * sizeof(ADDIN_ARGV*)); - memset(&settings->DynamicChannelArray[count - 1], 0, sizeof(ADDIN_ARGV*) * rem); + memset((void*)&settings->DynamicChannelArray[count - 1], 0, + sizeof(ADDIN_ARGV*) * rem); freerdp_addin_argv_free(cur); return freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelCount, @@ -728,7 +732,8 @@ BOOL freerdp_dynamic_channel_collection_add(rdpSettings* settings, ADDIN_ARGV* c if (size == 0) size = count * 2; - new_array = realloc(settings->DynamicChannelArray, sizeof(ADDIN_ARGV*) * size); + new_array = + (ADDIN_ARGV**)realloc((void*)settings->DynamicChannelArray, sizeof(ADDIN_ARGV*) * size); if (!new_array) return FALSE; @@ -736,7 +741,7 @@ BOOL freerdp_dynamic_channel_collection_add(rdpSettings* settings, ADDIN_ARGV* c settings->DynamicChannelArray = new_array; { const size_t rem = size - oldSize; - memset(&settings->DynamicChannelArray[oldSize], 0, sizeof(ADDIN_ARGV*) * rem); + memset((void*)&settings->DynamicChannelArray[oldSize], 0, sizeof(ADDIN_ARGV*) * rem); } if (!freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelArraySize, size)) return FALSE; @@ -773,7 +778,7 @@ void freerdp_addin_argv_free(ADDIN_ARGV* args) { for (int index = 0; index < args->argc; index++) free(args->argv[index]); - free(args->argv); + free((void*)args->argv); } free(args); @@ -791,7 +796,7 @@ ADDIN_ARGV* freerdp_addin_argv_new(size_t argc, const char* const argv[]) return args; args->argc = (int)argc; - args->argv = calloc(argc, sizeof(char*)); + args->argv = (char**)calloc(argc, sizeof(char*)); if (!args->argv) goto fail; @@ -838,7 +843,7 @@ void freerdp_dynamic_channel_collection_free(rdpSettings* settings) freerdp_addin_argv_free(settings->DynamicChannelArray[i]); } - free(settings->DynamicChannelArray); + free((void*)settings->DynamicChannelArray); (void)freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelArraySize, 0); settings->DynamicChannelArray = NULL; (void)freerdp_settings_set_uint32(settings, FreeRDP_DynamicChannelCount, 0); @@ -861,7 +866,7 @@ void freerdp_capability_buffer_free(rdpSettings* settings) free(settings->ReceivedCapabilityDataSizes); settings->ReceivedCapabilityDataSizes = NULL; - free(settings->ReceivedCapabilityData); + free((void*)settings->ReceivedCapabilityData); settings->ReceivedCapabilityData = NULL; free(settings->ReceivedCapabilities); settings->ReceivedCapabilities = NULL; @@ -912,7 +917,7 @@ void freerdp_target_net_addresses_free(rdpSettings* settings) free(settings->TargetNetAddresses[index]); } - free(settings->TargetNetAddresses); + free((void*)settings->TargetNetAddresses); free(settings->TargetNetPorts); settings->TargetNetAddressCount = 0; settings->TargetNetAddresses = NULL; @@ -928,7 +933,7 @@ void freerdp_server_license_issuers_free(rdpSettings* settings) for (UINT32 x = 0; x < settings->ServerLicenseProductIssuersCount; x++) free(settings->ServerLicenseProductIssuers[x]); } - free(settings->ServerLicenseProductIssuers); + free((void*)settings->ServerLicenseProductIssuers); settings->ServerLicenseProductIssuers = NULL; settings->ServerLicenseProductIssuersCount = 0; } diff --git a/libfreerdp/common/settings_getters.c b/libfreerdp/common/settings_getters.c index 0f454076a..268e387c3 100644 --- a/libfreerdp/common/settings_getters.c +++ b/libfreerdp/common/settings_getters.c @@ -3953,94 +3953,94 @@ void* freerdp_settings_get_pointer_writable(rdpSettings* settings, FreeRDP_Setti switch (id) { case FreeRDP_BitmapCacheV2CellInfo: - return settings->BitmapCacheV2CellInfo; + return (void*)settings->BitmapCacheV2CellInfo; case FreeRDP_ChannelDefArray: - return settings->ChannelDefArray; + return (void*)settings->ChannelDefArray; case FreeRDP_ClientAutoReconnectCookie: - return settings->ClientAutoReconnectCookie; + return (void*)settings->ClientAutoReconnectCookie; case FreeRDP_ClientRandom: - return settings->ClientRandom; + return (void*)settings->ClientRandom; case FreeRDP_ClientTimeZone: - return settings->ClientTimeZone; + return (void*)settings->ClientTimeZone; case FreeRDP_DeviceArray: - return settings->DeviceArray; + return (void*)settings->DeviceArray; case FreeRDP_DynamicChannelArray: - return settings->DynamicChannelArray; + return (void*)settings->DynamicChannelArray; case FreeRDP_FragCache: - return settings->FragCache; + return (void*)settings->FragCache; case FreeRDP_GlyphCache: - return settings->GlyphCache; + return (void*)settings->GlyphCache; case FreeRDP_LoadBalanceInfo: - return settings->LoadBalanceInfo; + return (void*)settings->LoadBalanceInfo; case FreeRDP_MonitorDefArray: - return settings->MonitorDefArray; + return (void*)settings->MonitorDefArray; case FreeRDP_MonitorIds: - return settings->MonitorIds; + return (void*)settings->MonitorIds; case FreeRDP_OrderSupport: - return settings->OrderSupport; + return (void*)settings->OrderSupport; case FreeRDP_Password51: - return settings->Password51; + return (void*)settings->Password51; case FreeRDP_RdpServerCertificate: - return settings->RdpServerCertificate; + return (void*)settings->RdpServerCertificate; case FreeRDP_RdpServerRsaKey: - return settings->RdpServerRsaKey; + return (void*)settings->RdpServerRsaKey; case FreeRDP_ReceivedCapabilities: - return settings->ReceivedCapabilities; + return (void*)settings->ReceivedCapabilities; case FreeRDP_ReceivedCapabilityData: - return settings->ReceivedCapabilityData; + return (void*)settings->ReceivedCapabilityData; case FreeRDP_ReceivedCapabilityDataSizes: - return settings->ReceivedCapabilityDataSizes; + return (void*)settings->ReceivedCapabilityDataSizes; case FreeRDP_RedirectionGuid: - return settings->RedirectionGuid; + return (void*)settings->RedirectionGuid; case FreeRDP_RedirectionPassword: - return settings->RedirectionPassword; + return (void*)settings->RedirectionPassword; case FreeRDP_RedirectionTargetCertificate: - return settings->RedirectionTargetCertificate; + return (void*)settings->RedirectionTargetCertificate; case FreeRDP_RedirectionTsvUrl: - return settings->RedirectionTsvUrl; + return (void*)settings->RedirectionTsvUrl; case FreeRDP_ServerAutoReconnectCookie: - return settings->ServerAutoReconnectCookie; + return (void*)settings->ServerAutoReconnectCookie; case FreeRDP_ServerCertificate: - return settings->ServerCertificate; + return (void*)settings->ServerCertificate; case FreeRDP_ServerLicenseProductIssuers: - return settings->ServerLicenseProductIssuers; + return (void*)settings->ServerLicenseProductIssuers; case FreeRDP_ServerRandom: - return settings->ServerRandom; + return (void*)settings->ServerRandom; case FreeRDP_StaticChannelArray: - return settings->StaticChannelArray; + return (void*)settings->StaticChannelArray; case FreeRDP_TargetNetAddresses: - return settings->TargetNetAddresses; + return (void*)settings->TargetNetAddresses; case FreeRDP_TargetNetPorts: - return settings->TargetNetPorts; + return (void*)settings->TargetNetPorts; case FreeRDP_instance: return settings->instance; @@ -4069,123 +4069,123 @@ BOOL freerdp_settings_set_pointer(rdpSettings* settings, FreeRDP_Settings_Keys_P switch (id) { case FreeRDP_BitmapCacheV2CellInfo: - settings->BitmapCacheV2CellInfo = cnv.v; + settings->BitmapCacheV2CellInfo = (BITMAP_CACHE_V2_CELL_INFO*)cnv.v; break; case FreeRDP_ChannelDefArray: - settings->ChannelDefArray = cnv.v; + settings->ChannelDefArray = (CHANNEL_DEF*)cnv.v; break; case FreeRDP_ClientAutoReconnectCookie: - settings->ClientAutoReconnectCookie = cnv.v; + settings->ClientAutoReconnectCookie = (ARC_CS_PRIVATE_PACKET*)cnv.v; break; case FreeRDP_ClientRandom: - settings->ClientRandom = cnv.v; + settings->ClientRandom = (BYTE*)cnv.v; break; case FreeRDP_ClientTimeZone: - settings->ClientTimeZone = cnv.v; + settings->ClientTimeZone = (TIME_ZONE_INFORMATION*)cnv.v; break; case FreeRDP_DeviceArray: - settings->DeviceArray = cnv.v; + settings->DeviceArray = (RDPDR_DEVICE**)cnv.v; break; case FreeRDP_DynamicChannelArray: - settings->DynamicChannelArray = cnv.v; + settings->DynamicChannelArray = (ADDIN_ARGV**)cnv.v; break; case FreeRDP_FragCache: - settings->FragCache = cnv.v; + settings->FragCache = (GLYPH_CACHE_DEFINITION*)cnv.v; break; case FreeRDP_GlyphCache: - settings->GlyphCache = cnv.v; + settings->GlyphCache = (GLYPH_CACHE_DEFINITION*)cnv.v; break; case FreeRDP_LoadBalanceInfo: - settings->LoadBalanceInfo = cnv.v; + settings->LoadBalanceInfo = (BYTE*)cnv.v; break; case FreeRDP_MonitorDefArray: - settings->MonitorDefArray = cnv.v; + settings->MonitorDefArray = (rdpMonitor*)cnv.v; break; case FreeRDP_MonitorIds: - settings->MonitorIds = cnv.v; + settings->MonitorIds = (UINT32*)cnv.v; break; case FreeRDP_OrderSupport: - settings->OrderSupport = cnv.v; + settings->OrderSupport = (BYTE*)cnv.v; break; case FreeRDP_Password51: - settings->Password51 = cnv.v; + settings->Password51 = (BYTE*)cnv.v; break; case FreeRDP_RdpServerCertificate: - settings->RdpServerCertificate = cnv.v; + settings->RdpServerCertificate = (rdpCertificate*)cnv.v; break; case FreeRDP_RdpServerRsaKey: - settings->RdpServerRsaKey = cnv.v; + settings->RdpServerRsaKey = (rdpPrivateKey*)cnv.v; break; case FreeRDP_ReceivedCapabilities: - settings->ReceivedCapabilities = cnv.v; + settings->ReceivedCapabilities = (BYTE*)cnv.v; break; case FreeRDP_ReceivedCapabilityData: - settings->ReceivedCapabilityData = cnv.v; + settings->ReceivedCapabilityData = (BYTE**)cnv.v; break; case FreeRDP_ReceivedCapabilityDataSizes: - settings->ReceivedCapabilityDataSizes = cnv.v; + settings->ReceivedCapabilityDataSizes = (UINT32*)cnv.v; break; case FreeRDP_RedirectionGuid: - settings->RedirectionGuid = cnv.v; + settings->RedirectionGuid = (BYTE*)cnv.v; break; case FreeRDP_RedirectionPassword: - settings->RedirectionPassword = cnv.v; + settings->RedirectionPassword = (BYTE*)cnv.v; break; case FreeRDP_RedirectionTargetCertificate: - settings->RedirectionTargetCertificate = cnv.v; + settings->RedirectionTargetCertificate = (rdpCertificate*)cnv.v; break; case FreeRDP_RedirectionTsvUrl: - settings->RedirectionTsvUrl = cnv.v; + settings->RedirectionTsvUrl = (BYTE*)cnv.v; break; case FreeRDP_ServerAutoReconnectCookie: - settings->ServerAutoReconnectCookie = cnv.v; + settings->ServerAutoReconnectCookie = (ARC_SC_PRIVATE_PACKET*)cnv.v; break; case FreeRDP_ServerCertificate: - settings->ServerCertificate = cnv.v; + settings->ServerCertificate = (BYTE*)cnv.v; break; case FreeRDP_ServerLicenseProductIssuers: - settings->ServerLicenseProductIssuers = cnv.v; + settings->ServerLicenseProductIssuers = (char**)cnv.v; break; case FreeRDP_ServerRandom: - settings->ServerRandom = cnv.v; + settings->ServerRandom = (BYTE*)cnv.v; break; case FreeRDP_StaticChannelArray: - settings->StaticChannelArray = cnv.v; + settings->StaticChannelArray = (ADDIN_ARGV**)cnv.v; break; case FreeRDP_TargetNetAddresses: - settings->TargetNetAddresses = cnv.v; + settings->TargetNetAddresses = (char**)cnv.v; break; case FreeRDP_TargetNetPorts: - settings->TargetNetPorts = cnv.v; + settings->TargetNetPorts = (UINT32*)cnv.v; break; case FreeRDP_instance: diff --git a/libfreerdp/core/childsession.c b/libfreerdp/core/childsession.c index 3fb5854d7..bdd9f3a1a 100644 --- a/libfreerdp/core/childsession.c +++ b/libfreerdp/core/childsession.c @@ -536,7 +536,7 @@ BIO* createChildSessionBio(void) return NULL; } - BIO_set_handle(lowLevelBio, f); + BIO_set_handle(lowLevelBio, &f); BIO* bufferedBio = BIO_new(BIO_s_buffered_socket()); if (!bufferedBio) diff --git a/libfreerdp/core/gateway/arm.c b/libfreerdp/core/gateway/arm.c index 988e63f37..e2f846f40 100644 --- a/libfreerdp/core/gateway/arm.c +++ b/libfreerdp/core/gateway/arm.c @@ -71,7 +71,7 @@ typedef struct rdp_arm rdpArm; #define TAG FREERDP_TAG("core.gateway.arm") #ifdef WITH_AAD -static BOOL arm_tls_connect(rdpArm* arm, rdpTls* tls, int timeout) +static BOOL arm_tls_connect(rdpArm* arm, rdpTls* tls, UINT32 timeout) { WINPR_ASSERT(arm); WINPR_ASSERT(tls); diff --git a/libfreerdp/core/gateway/http.c b/libfreerdp/core/gateway/http.c index 40337daf5..729ee6b71 100644 --- a/libfreerdp/core/gateway/http.c +++ b/libfreerdp/core/gateway/http.c @@ -1581,7 +1581,7 @@ void http_response_free(HttpResponse* response) if (!response) return; - free(response->lines); + free((void*)response->lines); ListDictionary_Free(response->Authenticates); ListDictionary_Free(response->SetCookie); Stream_Free(response->data, TRUE); diff --git a/libfreerdp/core/license.c b/libfreerdp/core/license.c index e7d6b9af6..674cc2826 100644 --- a/libfreerdp/core/license.c +++ b/libfreerdp/core/license.c @@ -1683,14 +1683,15 @@ BOOL license_scope_list_resize(SCOPE_LIST* scopeList, UINT32 count) if (count > 0) { - LICENSE_BLOB** tmp = realloc(scopeList->array, count * sizeof(LICENSE_BLOB*)); + LICENSE_BLOB** tmp = + (LICENSE_BLOB**)realloc((void*)scopeList->array, count * sizeof(LICENSE_BLOB*)); if (!tmp) return FALSE; scopeList->array = tmp; } else { - free(scopeList->array); + free((void*)scopeList->array); scopeList->array = NULL; } diff --git a/libfreerdp/core/redirection.c b/libfreerdp/core/redirection.c index 231c96443..286976929 100644 --- a/libfreerdp/core/redirection.c +++ b/libfreerdp/core/redirection.c @@ -68,7 +68,7 @@ static void redirection_free_array(char*** what, UINT32* count) { for (UINT32 x = 0; x < *count; x++) free((*what)[x]); - free(*what); + free((void*)*what); } *what = NULL; @@ -127,7 +127,7 @@ static BOOL redirection_copy_array(char*** dst, UINT32* plen, const char** str, if (!str || (len == 0)) return TRUE; - *dst = calloc(len, sizeof(char*)); + *dst = (char**)calloc(len, sizeof(char*)); if (!*dst) return FALSE; *plen = (UINT32)len; diff --git a/libfreerdp/core/server.c b/libfreerdp/core/server.c index 5ea797f65..8c5a21343 100644 --- a/libfreerdp/core/server.c +++ b/libfreerdp/core/server.c @@ -1678,7 +1678,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL } else { - CopyMemory(*ppBuffer, &fds[0], sizeof(void*)); + CopyMemory(*ppBuffer, (void*)&fds[0], sizeof(void*)); *pBytesReturned = sizeof(void*); status = TRUE; } @@ -1696,7 +1696,7 @@ BOOL WINAPI FreeRDP_WTSVirtualChannelQuery(HANDLE hChannelHandle, WTS_VIRTUAL_CL } else { - CopyMemory(*ppBuffer, &(hEvent), sizeof(HANDLE)); + CopyMemory(*ppBuffer, (void*)&hEvent, sizeof(HANDLE)); *pBytesReturned = sizeof(void*); status = TRUE; } diff --git a/libfreerdp/core/settings.c b/libfreerdp/core/settings.c index cc1ec639c..3425c8e56 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -762,11 +762,11 @@ BOOL freerdp_capability_buffer_allocate(rdpSettings* settings, UINT32 count) memset(tmp, 0, count * sizeof(BYTE)); settings->ReceivedCapabilities = tmp; - tmp = realloc(settings->ReceivedCapabilityData, count * sizeof(BYTE*)); + tmp = realloc((void*)settings->ReceivedCapabilityData, count * sizeof(BYTE*)); if (!tmp) return FALSE; memset(tmp, 0, count * sizeof(BYTE*)); - settings->ReceivedCapabilityData = tmp; + settings->ReceivedCapabilityData = (BYTE**)tmp; tmp = realloc(settings->ReceivedCapabilityDataSizes, count * sizeof(UINT32)); if (!tmp) diff --git a/libfreerdp/core/smartcardlogon.c b/libfreerdp/core/smartcardlogon.c index 32d4bb357..74ba8cfd3 100644 --- a/libfreerdp/core/smartcardlogon.c +++ b/libfreerdp/core/smartcardlogon.c @@ -119,7 +119,7 @@ void smartcardCertList_Free(SmartcardCertInfo** cert_list, size_t count) smartcardCertInfo_Free(cert); } - free(cert_list); + free((void*)cert_list); } static BOOL add_cert_to_list(SmartcardCertInfo*** certInfoList, size_t* count, @@ -139,8 +139,8 @@ static BOOL add_cert_to_list(SmartcardCertInfo*** certInfoList, size_t* count, } { - SmartcardCertInfo** tmpInfoList = - realloc(curInfoList, sizeof(SmartcardCertInfo*) * (curCount + 1)); + SmartcardCertInfo** tmpInfoList = (SmartcardCertInfo**)realloc( + (void*)curInfoList, sizeof(SmartcardCertInfo*) * (curCount + 1)); if (!tmpInfoList) { WLog_ERR(TAG, "unable to reallocate certs"); @@ -802,7 +802,7 @@ static BOOL smartcard_sw_enumerateCerts(const rdpSettings* settings, SmartcardCe goto out_error; } - cert_list = calloc(1, sizeof(SmartcardCertInfo*)); + cert_list = (SmartcardCertInfo**)calloc(1, sizeof(SmartcardCertInfo*)); if (!cert_list) goto out_error; @@ -931,7 +931,7 @@ BOOL smartcard_getCert(const rdpContext* context, SmartcardCertInfo** cert, BOOL gateway ? FreeRDP_GatewayUsername : FreeRDP_Username; FreeRDP_Settings_Keys_String domain_setting = gateway ? FreeRDP_GatewayDomain : FreeRDP_Domain; - free(cert_list); + free((void*)cert_list); if (!set_settings_from_smartcard(settings, username_setting, (*cert)->userHint) || !set_settings_from_smartcard(settings, domain_setting, (*cert)->domainHint)) diff --git a/libfreerdp/core/tcp.c b/libfreerdp/core/tcp.c index e6dc8b5d3..ee597c049 100644 --- a/libfreerdp/core/tcp.c +++ b/libfreerdp/core/tcp.c @@ -912,7 +912,7 @@ static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, cons if (!peers || !events || (count < 1)) { free(peers); - free(events); + free((void*)events); return -1; } @@ -985,7 +985,7 @@ static int freerdp_tcp_connect_multi(rdpContext* context, char** hostnames, cons peer_free(&peers[index]); free(peers); - free(events); + free((void*)events); return (int)sockfd; } diff --git a/libfreerdp/core/window.c b/libfreerdp/core/window.c index fc922f7dc..0954a99fd 100644 --- a/libfreerdp/core/window.c +++ b/libfreerdp/core/window.c @@ -997,8 +997,6 @@ static BOOL update_recv_notification_icon_info_order(rdpUpdate* update, wStream* static BOOL update_read_desktop_actively_monitored_order(wStream* s, WINDOW_ORDER_INFO* orderInfo, MONITORED_DESKTOP_ORDER* monitored_desktop) { - int size = 0; - if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_DESKTOP_ACTIVE_WND) { if (!Stream_CheckAndLogRequiredLength(TAG, s, 4)) @@ -1009,8 +1007,6 @@ static BOOL update_read_desktop_actively_monitored_order(wStream* s, WINDOW_ORDE if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_DESKTOP_ZORDER) { - UINT32* newid = NULL; - if (!Stream_CheckAndLogRequiredLength(TAG, s, 1)) return FALSE; @@ -1021,8 +1017,8 @@ static BOOL update_read_desktop_actively_monitored_order(wStream* s, WINDOW_ORDE if (monitored_desktop->numWindowIds > 0) { - size = sizeof(UINT32) * monitored_desktop->numWindowIds; - newid = (UINT32*)realloc(monitored_desktop->windowIds, size); + const size_t size = sizeof(UINT32) * monitored_desktop->numWindowIds; + UINT32* newid = (UINT32*)realloc(monitored_desktop->windowIds, size); if (!newid) { diff --git a/libfreerdp/crypto/x509_utils.c b/libfreerdp/crypto/x509_utils.c index 05cdeb26c..af056e515 100644 --- a/libfreerdp/crypto/x509_utils.c +++ b/libfreerdp/crypto/x509_utils.c @@ -254,7 +254,7 @@ static void string_list_allocate(string_list* list, int allocate_count) { if (!list->strings && list->allocated == 0) { - list->strings = calloc((size_t)allocate_count, sizeof(char*)); + list->strings = (char**)calloc((size_t)allocate_count, sizeof(char*)); list->allocated = list->strings ? allocate_count : -1; list->count = 0; } @@ -265,7 +265,7 @@ static void string_list_free(string_list* list) /* Note: we don't free the contents of the strings array: this */ /* is handled by the caller, either by returning this */ /* content, or freeing it itself. */ - free(list->strings); + free((void*)list->strings); } static int extract_string(GENERAL_NAME* name, void* data, int index, int count) @@ -358,7 +358,7 @@ static void object_list_allocate(object_list* list, int allocate_count) { if (!list->strings && list->allocated == 0) { - list->strings = calloc(allocate_count, sizeof(list->strings[0])); + list->strings = (char**)calloc(allocate_count, sizeof(list->strings[0])); list->allocated = list->strings ? allocate_count : -1; list->count = 0; } @@ -384,7 +384,8 @@ static char* object_string(ASN1_TYPE* object) static void object_list_free(object_list* list) { - free(list->strings); + WINPR_ASSERT(list); + free((void*)list->strings); } static int extract_othername_object_as_string(GENERAL_NAME* name, void* data, int index, int count) @@ -504,19 +505,19 @@ void x509_utils_dns_names_free(size_t count, size_t* lengths, char** dns_names) } } - free(dns_names); + free((void*)dns_names); } } char** x509_utils_get_dns_names(const X509* x509, size_t* count, size_t** lengths) { char** result = 0; - string_list list; + string_list list = { 0 }; string_list_initialize(&list); map_subject_alt_name(x509, GEN_DNS, extract_string, &list); - (*count) = list.count; + (*count) = (size_t)list.count; - if (list.count == 0) + if (list.count <= 0) { string_list_free(&list); return NULL; @@ -524,13 +525,13 @@ char** x509_utils_get_dns_names(const X509* x509, size_t* count, size_t** length /* lengths are not useful, since we converted the strings to utf-8, there cannot be nul-bytes in them. */ - result = calloc(list.count, sizeof(*result)); - (*lengths) = calloc(list.count, sizeof(**lengths)); + result = (char**)calloc((size_t)list.count, sizeof(*result)); + (*lengths) = calloc((size_t)list.count, sizeof(**lengths)); if (!result || !(*lengths)) { string_list_free(&list); - free(result); + free((void*)result); free(*lengths); (*lengths) = 0; (*count) = 0; diff --git a/libfreerdp/emu/scard/smartcard_emulate.c b/libfreerdp/emu/scard/smartcard_emulate.c index 221418ac3..08de623bb 100644 --- a/libfreerdp/emu/scard/smartcard_emulate.c +++ b/libfreerdp/emu/scard/smartcard_emulate.c @@ -1253,7 +1253,7 @@ HANDLE WINAPI Emulate_SCardAccessStartedEvent(SmartcardEmulationContext* smartca WLog_Print(smartcard->log, smartcard->log_default_level, "SCardAccessStartedEvent {"); /* Not required, return random */ - winpr_RAND(&hEvent, sizeof(hEvent)); + winpr_RAND((void*)&hEvent, sizeof(hEvent)); WLog_Print(smartcard->log, smartcard->log_default_level, "SCardAccessStartedEvent } hEvent: %p", hEvent); diff --git a/libfreerdp/primitives/opencl/prim_YUV_opencl.c b/libfreerdp/primitives/opencl/prim_YUV_opencl.c index b4b53d7c8..af628d4ae 100644 --- a/libfreerdp/primitives/opencl/prim_YUV_opencl.c +++ b/libfreerdp/primitives/opencl/prim_YUV_opencl.c @@ -274,14 +274,14 @@ static BOOL primitives_init_opencl_context(primitives_opencl_context* WINPR_REST if (ret != CL_SUCCESS || nplatforms < 1) return FALSE; - cl_platform_id* platform_ids = calloc(nplatforms, sizeof(cl_platform_id)); + cl_platform_id* platform_ids = (cl_platform_id*)calloc(nplatforms, sizeof(cl_platform_id)); if (!platform_ids) return FALSE; ret = clGetPlatformIDs(nplatforms, platform_ids, &nplatforms); if (ret != CL_SUCCESS) { - free(platform_ids); + free((void*)platform_ids); return FALSE; } @@ -339,7 +339,7 @@ static BOOL primitives_init_opencl_context(primitives_opencl_context* WINPR_REST gotGPU = TRUE; } - free(platform_ids); + free((void*)platform_ids); if (!gotGPU) { diff --git a/libfreerdp/utils/passphrase.c b/libfreerdp/utils/passphrase.c index 5bc08a0a5..c2eea0ea9 100644 --- a/libfreerdp/utils/passphrase.c +++ b/libfreerdp/utils/passphrase.c @@ -17,6 +17,8 @@ * limitations under the License. */ +#include + #include #include diff --git a/server/proxy/pf_server.c b/server/proxy/pf_server.c index c30d303c2..d7d05bdf8 100644 --- a/server/proxy/pf_server.c +++ b/server/proxy/pf_server.c @@ -270,7 +270,7 @@ static BOOL pf_server_setup_channels(freerdp_peer* peer) rc = TRUE; fail: - free(accepted_channels); + free((void*)accepted_channels); return rc; } diff --git a/server/shadow/shadow_encoder.c b/server/shadow/shadow_encoder.c index 222c95cf6..0d172f0d1 100644 --- a/server/shadow/shadow_encoder.c +++ b/server/shadow/shadow_encoder.c @@ -119,7 +119,7 @@ static int shadow_encoder_uninit_grid(rdpShadowEncoder* encoder) if (encoder->grid) { - free(encoder->grid); + free((void*)encoder->grid); encoder->grid = NULL; } diff --git a/tools/update-settings-tests b/tools/update-settings-tests index bd8e4390c..14c180980 100755 --- a/tools/update-settings-tests +++ b/tools/update-settings-tests @@ -16,6 +16,21 @@ def get_values(entry_dict, entry_type): return sorted(values) return values +def get_keys(entry_dict, entry_type, values): + l = list() + if '*' == entry_type: + dval = dict() + for key in list(entry_dict.keys()): + if entry_type in key: + xval = entry_dict[key] + for val in xval: + dval[val] = key + + for val in list(values): + key = dval[val] + l.append(key) + return l + def write_entry(f, entry_dict, entry_type, entry_name): values = get_values(entry_dict, entry_type) if not values: @@ -64,18 +79,24 @@ def write_str(f, entry_dict): f.write('};\n\n') f.write('\n') -def write_getter_case(f, val): +def write_getter_case(f, val, cast): f.write('\t\tcase FreeRDP_' + val + ':\n') - f.write('\t\t\treturn settings->' + val + ';\n\n') + f.write('\t\t\treturn ' + cast + 'settings->' + val + ';\n\n') -def write_getter_body(f, values, ret): +def write_getter_body(f, values, ret, keys, isPointer): f.write('{\n') f.write('\tWINPR_ASSERT(settings);\n\n') f.write('\tswitch (id)\n') f.write('\t{\n') if values: - for val in values: - write_getter_case(f, val) + for i in range(len(values)): + val = values[i] + cast = '' + if isPointer and keys: + key = keys[i] + if key != 'void*': + cast = '(void*)' + write_getter_case(f, val, cast) f.write('\t\tdefault:\n') f.write('\t\t\tWLog_ERR(TAG, "Invalid key index %" PRIuz " [%s|%s]", id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id));\n') f.write('\t\t\tWINPR_ASSERT(FALSE);\n') @@ -86,7 +107,9 @@ def write_getter_body(f, values, ret): def write_getter(f, entry_dict, entry_type, entry_name, postfix): isString = 'string' in entry_name isPointer = 'pointer' in entry_name + copy = dict(entry_dict) values = get_values(entry_dict, entry_type) + keys = get_keys(copy, entry_type, values) typestr = 'FreeRDP_Settings_Keys_' + entry_name.capitalize() typestr = typestr.replace('_Uint', '_UInt') @@ -109,16 +132,16 @@ def write_getter(f, entry_dict, entry_type, entry_name, postfix): else: ret = '0'; - write_getter_body(f, values, ret) + write_getter_body(f, values, ret, keys, isPointer) if isString: f.write('char* freerdp_settings_get_' + entry_name.lower() + '_writable(rdpSettings* settings, ' + typestr + ' id)\n') - write_getter_body(f, values, ret) + write_getter_body(f, values, ret, keys, isPointer) -def write_setter_case(f, val, postfix, isPointer): +def write_setter_case(f, val, postfix, isPointer, cast): f.write('\t\tcase FreeRDP_' + val + ':\n') if isPointer: - f.write('\t\t\tsettings->' + val + ' = cnv.v;\n') + f.write('\t\t\tsettings->' + val + ' = ' + cast + ' cnv.v;\n') f.write('\t\t\tbreak;\n\n') elif not postfix: f.write('\t\t\tsettings->' + val + ' = cnv.c;\n') @@ -131,14 +154,16 @@ def write_setter_case(f, val, postfix, isPointer): def write_setter(f, entry_dict, entry_type, entry_name, postfix): isString = 'string' in entry_name isPointer = 'pointer' in entry_name + copy = dict(entry_dict) values = get_values(entry_dict, entry_type) + keys = get_keys(copy, entry_type, values) typestr = 'FreeRDP_Settings_Keys_' + entry_name.capitalize() typestr = typestr.replace('_Uint', '_UInt') f.write('BOOL freerdp_settings_set_' + entry_name.lower()) f.write(postfix) f.write('(rdpSettings* settings, ' + typestr + ' id, ') - if isString and len(postfix) > 1 or isPointer: + if isString and len(postfix) > 0 or isPointer: f.write('const ') if not isPointer: f.write(entry_type + ' val') @@ -170,8 +195,16 @@ def write_setter(f, entry_dict, entry_type, entry_name, postfix): f.write('\tswitch (id)\n') f.write('\t{\n') if values: + count = 0 for val in values: - write_setter_case(f, val, postfix, isPointer) + index = count + count += 1 + cast = '' + if isPointer: + k = keys[index]; + if k != 'void*' and len(k) > 0: + cast = '(' + k + ')' + write_setter_case(f, val, postfix, isPointer, cast) f.write('\t\tdefault:\n') f.write('\t\t\tWLog_ERR(TAG, "Invalid key index %" PRIuz " [%s|%s]", id, freerdp_settings_get_name_for_key(id), freerdp_settings_get_type_name_for_key(id));\n') f.write('\t\t\treturn FALSE;\n') diff --git a/winpr/include/winpr/debug.h b/winpr/include/winpr/debug.h index 243028110..c3813f920 100644 --- a/winpr/include/winpr/debug.h +++ b/winpr/include/winpr/debug.h @@ -34,6 +34,7 @@ extern "C" WINPR_API void winpr_log_backtrace_ex(wLog* log, DWORD level, DWORD size); WINPR_API void* winpr_backtrace(DWORD size); WINPR_API void winpr_backtrace_free(void* buffer); + WINPR_ATTR_MALLOC(free, 1) WINPR_API char** winpr_backtrace_symbols(void* buffer, size_t* used); WINPR_API void winpr_backtrace_symbols_fd(void* buffer, int fd); WINPR_API char* winpr_strerror(INT32 dw, char* dmsg, size_t size); diff --git a/winpr/include/winpr/stream.h b/winpr/include/winpr/stream.h index fb8b7fb09..6f60aebd6 100644 --- a/winpr/include/winpr/stream.h +++ b/winpr/include/winpr/stream.h @@ -1127,8 +1127,14 @@ extern "C" WINPR_ASSERT(_s->pointer); WINPR_ASSERT(Stream_GetRemainingCapacity(_s) >= 8); - Stream_Write_UINT32(_s, ((_v) & 0xFFFFFFFFUL)); - Stream_Write_UINT32(_s, ((_v) >> 32 & 0xFFFFFFFFUL)); + *_s->pointer++ = (_v) & 0xFF; + *_s->pointer++ = ((_v) >> 8) & 0xFF; + *_s->pointer++ = ((_v) >> 16) & 0xFF; + *_s->pointer++ = ((_v) >> 24) & 0xFF; + *_s->pointer++ = ((_v) >> 32) & 0xFF; + *_s->pointer++ = ((_v) >> 40) & 0xFF; + *_s->pointer++ = ((_v) >> 48) & 0xFF; + *_s->pointer++ = ((_v) >> 56) & 0xFF; } /** @brief writes a \b INT64 as \b big endian to a \b wStream. The stream must be large enough @@ -1144,8 +1150,14 @@ extern "C" WINPR_ASSERT(_s->pointer); WINPR_ASSERT(Stream_GetRemainingCapacity(_s) >= 8); - Stream_Write_UINT32_BE(_s, ((_v) >> 32 & 0xFFFFFFFFUL)); - Stream_Write_UINT32_BE(_s, ((_v) & 0xFFFFFFFFUL)); + *_s->pointer++ = (_v >> 56) & 0xFF; + *_s->pointer++ = ((_v) >> 48) & 0xFF; + *_s->pointer++ = ((_v) >> 40) & 0xFF; + *_s->pointer++ = ((_v) >> 32) & 0xFF; + *_s->pointer++ = ((_v) >> 24) & 0xFF; + *_s->pointer++ = ((_v) >> 16) & 0xFF; + *_s->pointer++ = ((_v) >> 8) & 0xFF; + *_s->pointer++ = ((_v) >> 0) & 0xFF; } static INLINE void Stream_Write(wStream* _s, const void* _b, size_t _n) diff --git a/winpr/libwinpr/comm/comm.c b/winpr/libwinpr/comm/comm.c index 6a541709c..510569e38 100644 --- a/winpr/libwinpr/comm/comm.c +++ b/winpr/libwinpr/comm/comm.c @@ -171,7 +171,7 @@ static void CommInit(void) if (!InitializeCriticalSectionEx(&sCommDevicesLock, 0, 0)) { - free(sCommDevices); + free((void*)sCommDevices); sCommDevices = NULL; return; } diff --git a/winpr/libwinpr/environment/environment.c b/winpr/libwinpr/environment/environment.c index 84743e061..f9a598eb5 100644 --- a/winpr/libwinpr/environment/environment.c +++ b/winpr/libwinpr/environment/environment.c @@ -647,7 +647,7 @@ char** EnvironmentBlockToEnvpA(LPCH lpszEnvironmentBlock) { free(envp[index]); } - free(envp); + free((void*)envp); return NULL; } p += (length + 1); diff --git a/winpr/libwinpr/synch/test/TestSynchCritical.c b/winpr/libwinpr/synch/test/TestSynchCritical.c index ff0b9cfe1..139885a81 100644 --- a/winpr/libwinpr/synch/test/TestSynchCritical.c +++ b/winpr/libwinpr/synch/test/TestSynchCritical.c @@ -277,7 +277,7 @@ static DWORD WINAPI TestSynchCritical_Main(LPVOID arg) DeleteCriticalSection(&critical); } - free(hThreads); + free((void*)hThreads); /** * TryEnterCriticalSection in thread must fail if we hold the lock in the main thread diff --git a/winpr/libwinpr/thread/process.c b/winpr/libwinpr/thread/process.c index 53ba41767..8c4281da7 100644 --- a/winpr/libwinpr/thread/process.c +++ b/winpr/libwinpr/thread/process.c @@ -345,7 +345,7 @@ finish: pthread_sigmask(SIG_SETMASK, &oldSigMask, NULL); free(filename); - free(pArgs); + free((void*)pArgs); if (lpszEnvironmentBlock) FreeEnvironmentStrings(lpszEnvironmentBlock); @@ -360,7 +360,7 @@ finish: i++; } - free(envp); + free((void*)envp); } return ret; diff --git a/winpr/libwinpr/thread/test/TestThreadCommandLineToArgv.c b/winpr/libwinpr/thread/test/TestThreadCommandLineToArgv.c index 51906b65b..91017b898 100644 --- a/winpr/libwinpr/thread/test/TestThreadCommandLineToArgv.c +++ b/winpr/libwinpr/thread/test/TestThreadCommandLineToArgv.c @@ -72,7 +72,7 @@ static BOOL test_command_line_parsing_case(const char* line, const char** list, rc = TRUE; fail: - free(pArgs); + free((void*)pArgs); return rc; } diff --git a/winpr/libwinpr/timezone/timezone.c b/winpr/libwinpr/timezone/timezone.c index 053f47920..64e9c3ff4 100644 --- a/winpr/libwinpr/timezone/timezone.c +++ b/winpr/libwinpr/timezone/timezone.c @@ -778,7 +778,7 @@ DWORD GetDynamicTimeZoneInformation(PDYNAMIC_TIME_ZONE_INFORMATION tz) if (!map_iana_id(tzid, tz)) { const size_t len = TimeZoneIanaAbbrevGet(local_time->tm_zone, NULL, 0); - list = calloc(len, sizeof(char*)); + list = (const char**)calloc(len, sizeof(const char*)); if (!list) goto out_error; const size_t size = TimeZoneIanaAbbrevGet(local_time->tm_zone, list, len); @@ -803,7 +803,7 @@ DWORD GetDynamicTimeZoneInformation(PDYNAMIC_TIME_ZONE_INFORMATION tz) out_error: free(tzid); - free(list); + free((void*)list); log_timezone(tz, res); return res; diff --git a/winpr/libwinpr/utils/cmdline.c b/winpr/libwinpr/utils/cmdline.c index 7d9d330ad..4b6e92dad 100644 --- a/winpr/libwinpr/utils/cmdline.c +++ b/winpr/libwinpr/utils/cmdline.c @@ -783,7 +783,7 @@ fail: { if (count) *count = 0; - free(p); + free((void*)p); return NULL; } return p; diff --git a/winpr/libwinpr/utils/collections/ArrayList.c b/winpr/libwinpr/utils/collections/ArrayList.c index d33ea6cd0..afbd6af05 100644 --- a/winpr/libwinpr/utils/collections/ArrayList.c +++ b/winpr/libwinpr/utils/collections/ArrayList.c @@ -207,7 +207,7 @@ static BOOL ArrayList_EnsureCapacity(wArrayList* arrayList, size_t count) if (newCapacity < arrayList->size + count) newCapacity = arrayList->size + count; - newArray = (void**)realloc(arrayList->array, sizeof(void*) * newCapacity); + newArray = (void**)realloc((void*)arrayList->array, sizeof(void*) * newCapacity); if (!newArray) return FALSE; @@ -227,12 +227,12 @@ static BOOL ArrayList_Shift(wArrayList* arrayList, size_t index, SSIZE_T count) WINPR_ASSERT(arrayList); if (count > 0) { - if (!ArrayList_EnsureCapacity(arrayList, count)) + if (!ArrayList_EnsureCapacity(arrayList, (size_t)count)) return FALSE; - MoveMemory(&arrayList->array[index + count], &arrayList->array[index], + MoveMemory((void*)&arrayList->array[index + (size_t)count], (void*)&arrayList->array[index], (arrayList->size - index) * sizeof(void*)); - arrayList->size += count; + arrayList->size += (size_t)count; } else if (count < 0) { @@ -240,7 +240,7 @@ static BOOL ArrayList_Shift(wArrayList* arrayList, size_t index, SSIZE_T count) if (off < arrayList->size) { const size_t chunk = arrayList->size - off; - MoveMemory(&arrayList->array[index], &arrayList->array[index - count], + MoveMemory((void*)&arrayList->array[index], (void*)&arrayList->array[index - count], chunk * sizeof(void*)); } @@ -607,6 +607,6 @@ void ArrayList_Free(wArrayList* arrayList) ArrayList_Clear(arrayList); DeleteCriticalSection(&arrayList->lock); - free(arrayList->array); + free((void*)arrayList->array); free(arrayList); } diff --git a/winpr/libwinpr/utils/collections/BufferPool.c b/winpr/libwinpr/utils/collections/BufferPool.c index 1d10cefa3..1ef129730 100644 --- a/winpr/libwinpr/utils/collections/BufferPool.c +++ b/winpr/libwinpr/utils/collections/BufferPool.c @@ -364,7 +364,7 @@ BOOL BufferPool_Return(wBufferPool* pool, void* buffer) if ((pool->size + 1) >= pool->capacity) { SSIZE_T newCapacity = pool->capacity * 2; - void** newArray = (void**)realloc(pool->array, sizeof(void*) * newCapacity); + void** newArray = (void**)realloc((void*)pool->array, sizeof(void*) * newCapacity); if (!newArray) goto out_error; @@ -545,7 +545,7 @@ void BufferPool_Free(wBufferPool* pool) { /* fixed size buffers */ - free(pool->array); + free((void*)pool->array); } else { diff --git a/winpr/libwinpr/utils/collections/HashTable.c b/winpr/libwinpr/utils/collections/HashTable.c index 75b2e5c01..773a2320b 100644 --- a/winpr/libwinpr/utils/collections/HashTable.c +++ b/winpr/libwinpr/utils/collections/HashTable.c @@ -174,7 +174,7 @@ static INLINE void HashTable_Rehash(wHashTable* table, size_t numOfBuckets) } } - free(table->bucketArray); + free((void*)table->bucketArray); table->bucketArray = newBucketArray; table->numOfBuckets = numOfBuckets; } @@ -811,7 +811,7 @@ void HashTable_Free(wHashTable* table) pair = nextPair; } } - free(table->bucketArray); + free((void*)table->bucketArray); } DeleteCriticalSection(&(table->lock)); diff --git a/winpr/libwinpr/utils/collections/ObjectPool.c b/winpr/libwinpr/utils/collections/ObjectPool.c index d7bb62357..98f962ae9 100644 --- a/winpr/libwinpr/utils/collections/ObjectPool.c +++ b/winpr/libwinpr/utils/collections/ObjectPool.c @@ -98,7 +98,7 @@ void ObjectPool_Return(wObjectPool* pool, void* obj) void** new_arr = NULL; new_cap = pool->capacity * 2; - new_arr = (void**)realloc(pool->array, sizeof(void*) * new_cap); + new_arr = (void**)realloc((void*)pool->array, sizeof(void*) * new_cap); if (!new_arr) goto out; @@ -178,7 +178,7 @@ void ObjectPool_Free(wObjectPool* pool) if (pool->synchronized) DeleteCriticalSection(&pool->lock); - free(pool->array); + free((void*)pool->array); free(pool); } diff --git a/winpr/libwinpr/utils/collections/PubSub.c b/winpr/libwinpr/utils/collections/PubSub.c index 4ab29ab81..147135338 100644 --- a/winpr/libwinpr/utils/collections/PubSub.c +++ b/winpr/libwinpr/utils/collections/PubSub.c @@ -173,7 +173,8 @@ int PubSub_Unsubscribe(wPubSub* pubSub, const char* EventName, ...) { event->EventHandlers[index] = NULL; event->EventHandlerCount--; - MoveMemory(&event->EventHandlers[index], &event->EventHandlers[index + 1], + MoveMemory((void*)&event->EventHandlers[index], + (void*)&event->EventHandlers[index + 1], (MAX_EVENT_HANDLERS - index - 1) * sizeof(pEventHandler)); status = 1; } diff --git a/winpr/libwinpr/utils/collections/Queue.c b/winpr/libwinpr/utils/collections/Queue.c index 8342bb0ad..0193c4658 100644 --- a/winpr/libwinpr/utils/collections/Queue.c +++ b/winpr/libwinpr/utils/collections/Queue.c @@ -170,19 +170,21 @@ static BOOL Queue_EnsureCapacity(wQueue* queue, size_t count) void** newArray = NULL; if (new_capacity < queue->size + count) new_capacity = queue->size + count; - newArray = (void**)realloc(queue->array, sizeof(void*) * new_capacity); + newArray = (void**)realloc((void*)queue->array, sizeof(void*) * new_capacity); if (!newArray) return FALSE; queue->capacity = new_capacity; queue->array = newArray; - ZeroMemory(&(queue->array[old_capacity]), (new_capacity - old_capacity) * sizeof(void*)); + ZeroMemory((void*)&(queue->array[old_capacity]), + (new_capacity - old_capacity) * sizeof(void*)); /* rearrange wrapped entries */ if (queue->tail <= queue->head) { - CopyMemory(&(queue->array[old_capacity]), queue->array, queue->tail * sizeof(void*)); + CopyMemory((void*)&(queue->array[old_capacity]), (void*)queue->array, + queue->tail * sizeof(void*)); queue->tail += old_capacity; } } @@ -344,6 +346,6 @@ void Queue_Free(wQueue* queue) DeleteCriticalSection(&queue->lock); } (void)CloseHandle(queue->event); - free(queue->array); + free((void*)queue->array); free(queue); } diff --git a/winpr/libwinpr/utils/collections/Stack.c b/winpr/libwinpr/utils/collections/Stack.c index f8b5c5e3f..13f6ba173 100644 --- a/winpr/libwinpr/utils/collections/Stack.c +++ b/winpr/libwinpr/utils/collections/Stack.c @@ -144,7 +144,7 @@ void Stack_Push(wStack* stack, void* obj) if ((stack->size + 1) >= stack->capacity) { const size_t new_cap = stack->capacity * 2; - void** new_arr = (void**)realloc(stack->array, sizeof(void*) * new_cap); + void** new_arr = (void**)realloc((void*)stack->array, sizeof(void*) * new_cap); if (!new_arr) goto end; @@ -246,7 +246,7 @@ void Stack_Free(wStack* stack) if (stack->synchronized) DeleteCriticalSection(&stack->lock); - free(stack->array); + free((void*)stack->array); free(stack); } } diff --git a/winpr/libwinpr/utils/collections/StreamPool.c b/winpr/libwinpr/utils/collections/StreamPool.c index 024cc1fec..a2f16b416 100644 --- a/winpr/libwinpr/utils/collections/StreamPool.c +++ b/winpr/libwinpr/utils/collections/StreamPool.c @@ -89,7 +89,7 @@ static BOOL StreamPool_EnsureCapacity(wStreamPool* pool, size_t count, BOOL used if (*cap < *size + count) *cap += count; - new_arr = (wStream**)realloc(*array, sizeof(wStream*) * new_cap); + new_arr = (wStream**)realloc((void*)*array, sizeof(wStream*) * new_cap); if (!new_arr) return FALSE; *cap = new_cap; @@ -110,7 +110,7 @@ static void StreamPool_ShiftUsed(wStreamPool* pool, size_t index, INT64 count) const size_t pcount = (size_t)count; StreamPool_EnsureCapacity(pool, pcount, TRUE); - MoveMemory(&pool->uArray[index + pcount], &pool->uArray[index], + MoveMemory((void*)&pool->uArray[index + pcount], (void*)&pool->uArray[index], (pool->uSize - index) * sizeof(wStream*)); pool->uSize += pcount; } @@ -120,7 +120,7 @@ static void StreamPool_ShiftUsed(wStreamPool* pool, size_t index, INT64 count) const size_t off = index + pcount; if (pool->uSize > off) { - MoveMemory(&pool->uArray[index], &pool->uArray[index + pcount], + MoveMemory((void*)&pool->uArray[index], (void*)&pool->uArray[index + pcount], (pool->uSize - index - pcount) * sizeof(wStream*)); } @@ -163,7 +163,7 @@ static void StreamPool_ShiftAvailable(wStreamPool* pool, size_t index, INT64 cou const size_t pcount = (size_t)count; StreamPool_EnsureCapacity(pool, pcount, FALSE); - MoveMemory(&pool->aArray[index + pcount], &pool->aArray[index], + MoveMemory((void*)&pool->aArray[index + pcount], (void*)&pool->aArray[index], (pool->aSize - index) * sizeof(wStream*)); pool->aSize += pcount; } @@ -173,7 +173,7 @@ static void StreamPool_ShiftAvailable(wStreamPool* pool, size_t index, INT64 cou const size_t off = index + pcount; if (pool->aSize > off) { - MoveMemory(&pool->aArray[index], &pool->aArray[index + pcount], + MoveMemory((void*)&pool->aArray[index], (void*)&pool->aArray[index + pcount], (pool->aSize - index - pcount) * sizeof(wStream*)); } @@ -388,8 +388,8 @@ void StreamPool_Free(wStreamPool* pool) DeleteCriticalSection(&pool->lock); - free(pool->aArray); - free(pool->uArray); + free((void*)pool->aArray); + free((void*)pool->uArray); free(pool); } diff --git a/winpr/libwinpr/utils/debug.c b/winpr/libwinpr/utils/debug.c index 4058d133c..54942c740 100644 --- a/winpr/libwinpr/utils/debug.c +++ b/winpr/libwinpr/utils/debug.c @@ -193,7 +193,7 @@ void winpr_backtrace_symbols_fd(void* buffer, int fd) for (size_t i = 0; i < used; i++) (void)_write(fd, lines[i], (unsigned)strnlen(lines[i], UINT32_MAX)); - free(lines); + free((void*)lines); } #else LOGF(support_msg); @@ -224,7 +224,7 @@ void winpr_log_backtrace_ex(wLog* log, DWORD level, DWORD size) for (size_t x = 0; x < used; x++) WLog_Print(log, level, "%" PRIuz ": %s", x, msg[x]); } - free(msg); + free((void*)msg); fail: winpr_backtrace_free(stack); diff --git a/winpr/libwinpr/utils/execinfo/debug.c b/winpr/libwinpr/utils/execinfo/debug.c index 453278439..5f76dc480 100644 --- a/winpr/libwinpr/utils/execinfo/debug.c +++ b/winpr/libwinpr/utils/execinfo/debug.c @@ -39,7 +39,7 @@ void winpr_execinfo_backtrace_free(void* buffer) if (!data) return; - free(data->buffer); + free((void*)data->buffer); free(data); } @@ -50,7 +50,7 @@ void* winpr_execinfo_backtrace(DWORD size) if (!data) return NULL; - data->buffer = calloc(size, sizeof(void*)); + data->buffer = (void**)calloc(size, sizeof(void*)); if (!data->buffer) { diff --git a/winpr/libwinpr/utils/image.c b/winpr/libwinpr/utils/image.c index 75efe33a0..26278ee4a 100644 --- a/winpr/libwinpr/utils/image.c +++ b/winpr/libwinpr/utils/image.c @@ -824,7 +824,11 @@ static void png_write_data(png_structp png_ptr, png_bytep data, png_size_t lengt /* allocate or grow buffer */ if (p->buffer) - p->buffer = realloc(p->buffer, nsize); + { + char* tmp = realloc(p->buffer, nsize); + if (tmp) + p->buffer = tmp; + } else p->buffer = malloc(nsize); @@ -889,7 +893,7 @@ static SSIZE_T save_png_to_buffer(UINT32 bpp, UINT32 width, UINT32 height, const PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); /* Initialize rows of PNG. */ - row_pointers = png_malloc(png_ptr, height * sizeof(png_byte*)); + row_pointers = (png_byte**)png_malloc(png_ptr, height * sizeof(png_byte*)); for (size_t y = 0; y < height; ++y) { uint8_t* row = png_malloc(png_ptr, sizeof(uint8_t) * bytes_per_row); @@ -915,7 +919,7 @@ static SSIZE_T save_png_to_buffer(UINT32 bpp, UINT32 width, UINT32 height, const /* Cleanup. */ for (size_t y = 0; y < height; y++) png_free(png_ptr, row_pointers[y]); - png_free(png_ptr, row_pointers); + png_free(png_ptr, (void*)row_pointers); /* Finish writing. */ if (state.size > SSIZE_MAX) diff --git a/winpr/libwinpr/utils/ini.c b/winpr/libwinpr/utils/ini.c index aeade48b7..8fec31f1e 100644 --- a/winpr/libwinpr/utils/ini.c +++ b/winpr/libwinpr/utils/ini.c @@ -250,7 +250,7 @@ static void IniFile_Section_Free(wIniFileSection* section) IniFile_Key_Free(section->keys[index]); } - free(section->keys); + free((void*)section->keys); free(section); } @@ -263,12 +263,12 @@ static BOOL IniFile_SectionKeysResize(wIniFileSection* section, size_t count) const size_t new_size = section->cKeys + count + 1024; const size_t diff = new_size - section->cKeys; wIniFileKey** new_keys = - (wIniFileKey**)realloc(section->keys, sizeof(wIniFileKey*) * new_size); + (wIniFileKey**)realloc((void*)section->keys, sizeof(wIniFileKey*) * new_size); if (!new_keys) return FALSE; - memset(&new_keys[section->cKeys], 0, diff * sizeof(wIniFileKey*)); + memset((void*)&new_keys[section->cKeys], 0, diff * sizeof(wIniFileKey*)); section->cKeys = new_size; section->keys = new_keys; } @@ -330,12 +330,12 @@ static BOOL IniFile_SectionResize(wIniFile* ini, size_t count) const size_t new_size = ini->cSections + count + 1024; const size_t diff = new_size - ini->cSections; wIniFileSection** new_sect = - (wIniFileSection**)realloc(ini->sections, sizeof(wIniFileSection*) * new_size); + (wIniFileSection**)realloc((void*)ini->sections, sizeof(wIniFileSection*) * new_size); if (!new_sect) return FALSE; - memset(&new_sect[ini->cSections], 0, diff * sizeof(wIniFileSection*)); + memset((void*)&new_sect[ini->cSections], 0, diff * sizeof(wIniFileSection*)); ini->cSections = new_size; ini->sections = new_sect; } @@ -811,7 +811,7 @@ void IniFile_Free(wIniFile* ini) for (size_t index = 0; index < ini->nSections; index++) IniFile_Section_Free(ini->sections[index]); - free(ini->sections); + free((void*)ini->sections); free(ini->buffer); free(ini); } diff --git a/winpr/libwinpr/utils/strlst.c b/winpr/libwinpr/utils/strlst.c index c1303b4cf..3172a937c 100644 --- a/winpr/libwinpr/utils/strlst.c +++ b/winpr/libwinpr/utils/strlst.c @@ -32,7 +32,7 @@ void string_list_free(char** string_list) free(string_list[i]); } - free(string_list); + free((void*)string_list); } int string_list_length(const char** string_list) @@ -47,7 +47,7 @@ int string_list_length(const char** string_list) char** string_list_copy(const char** string_list) { int length = string_list_length(string_list); - char** copy = calloc(length + 1, sizeof(char*)); + char** copy = (char**)calloc(length + 1, sizeof(char*)); if (!copy) { diff --git a/winpr/libwinpr/utils/test/TestBacktrace.c b/winpr/libwinpr/utils/test/TestBacktrace.c index 6d1d91d61..c3a89f193 100644 --- a/winpr/libwinpr/utils/test/TestBacktrace.c +++ b/winpr/libwinpr/utils/test/TestBacktrace.c @@ -29,6 +29,6 @@ int TestBacktrace(int argc, char* argv[]) winpr_backtrace_symbols_fd(stack, fileno(stdout)); winpr_backtrace_free(stack); - free(msg); + free((void*)msg); return rc; } diff --git a/winpr/libwinpr/utils/test/TestCmdLine.c b/winpr/libwinpr/utils/test/TestCmdLine.c index 553b7fc89..9be3c212f 100644 --- a/winpr/libwinpr/utils/test/TestCmdLine.c +++ b/winpr/libwinpr/utils/test/TestCmdLine.c @@ -307,10 +307,9 @@ int TestCmdLine(int argc, char* argv[]) } CommandLineSwitchCase(arg, "valuelist") { - char** p = NULL; size_t count = 0; - p = CommandLineParseCommaSeparatedValuesEx(arg->Name, arg->Value, &count); - free(p); + char** p = CommandLineParseCommaSeparatedValuesEx(arg->Name, arg->Value, &count); + free((void*)p); if (!p || count != 3) { @@ -322,10 +321,9 @@ int TestCmdLine(int argc, char* argv[]) } CommandLineSwitchCase(arg, "valuelist-empty") { - char** p = NULL; size_t count = 0; - p = CommandLineParseCommaSeparatedValuesEx(arg->Name, arg->Value, &count); - free(p); + char** p = CommandLineParseCommaSeparatedValuesEx(arg->Name, arg->Value, &count); + free((void*)p); if (!p || count != 1) { diff --git a/winpr/libwinpr/utils/test/TestIni.c b/winpr/libwinpr/utils/test/TestIni.c index 2dd24f0e7..5e4143e5e 100644 --- a/winpr/libwinpr/utils/test/TestIni.c +++ b/winpr/libwinpr/utils/test/TestIni.c @@ -58,14 +58,14 @@ int TestIni(int argc, char* argv[]) if (IniFile_ReadBuffer(ini, TEST_INI_01) < 0) goto fail; - free(sectionNames); + free((void*)sectionNames); sectionNames = IniFile_GetSectionNames(ini, &nSections); if (!sectionNames && (nSections > 0)) goto fail; for (size_t i = 0; i < nSections; i++) { - free(keyNames); + free((void*)keyNames); keyNames = IniFile_GetSectionKeyNames(ini, sectionNames[i], &nKeys); printf("[%s]\n", sectionNames[i]); if (!keyNames && (nKeys > 0)) @@ -124,14 +124,14 @@ int TestIni(int argc, char* argv[]) goto fail; if (IniFile_ReadBuffer(ini, TEST_INI_02) < 0) goto fail; - free(sectionNames); + free((void*)sectionNames); sectionNames = IniFile_GetSectionNames(ini, &nSections); if (!sectionNames && (nSections > 0)) goto fail; for (size_t i = 0; i < nSections; i++) { - free(keyNames); + free((void*)keyNames); keyNames = IniFile_GetSectionKeyNames(ini, sectionNames[i], &nKeys); printf("[%s]\n", sectionNames[i]); @@ -153,8 +153,8 @@ int TestIni(int argc, char* argv[]) rc = 0; fail: - free(keyNames); - free(sectionNames); + free((void*)keyNames); + free((void*)sectionNames); IniFile_Free(ini); return rc; } diff --git a/winpr/libwinpr/utils/unwind/debug.c b/winpr/libwinpr/utils/unwind/debug.c index 46c7b4be3..476f3ca93 100644 --- a/winpr/libwinpr/utils/unwind/debug.c +++ b/winpr/libwinpr/utils/unwind/debug.c @@ -164,6 +164,7 @@ char** winpr_unwind_backtrace_symbols(void* buffer, size_t* used) { union { + void* pv; char* cp; char** cpp; } cnv; @@ -173,8 +174,8 @@ char** winpr_unwind_backtrace_symbols(void* buffer, size_t* used) if (!ctx) return NULL; - cnv.cpp = calloc(ctx->pos * (sizeof(char*) + UNWIND_MAX_LINE_SIZE), sizeof(char*)); - if (!cnv.cpp) + cnv.pv = calloc(ctx->pos * (sizeof(char*) + UNWIND_MAX_LINE_SIZE), sizeof(char*)); + if (!cnv.pv) return NULL; if (used) diff --git a/winpr/libwinpr/utils/unwind/debug.h b/winpr/libwinpr/utils/unwind/debug.h index 5cd1290a8..b7faf451f 100644 --- a/winpr/libwinpr/utils/unwind/debug.h +++ b/winpr/libwinpr/utils/unwind/debug.h @@ -32,6 +32,8 @@ extern "C" void* winpr_unwind_backtrace(DWORD size); void winpr_unwind_backtrace_free(void* buffer); + + WINPR_ATTR_MALLOC(free, 1) char** winpr_unwind_backtrace_symbols(void* buffer, size_t* used); #ifdef __cplusplus diff --git a/winpr/libwinpr/utils/wlog/JournaldAppender.c b/winpr/libwinpr/utils/wlog/JournaldAppender.c index a1526b741..7efa81388 100644 --- a/winpr/libwinpr/utils/wlog/JournaldAppender.c +++ b/winpr/libwinpr/utils/wlog/JournaldAppender.c @@ -147,7 +147,7 @@ static BOOL WLog_JournaldAppender_Set(wLogAppender* appender, const char* settin if (!value || (strnlen(value, 2) == 0)) return FALSE; - if (strcmp("identifier", setting)) + if (strcmp("identifier", setting) != 0) return FALSE; /* If the stream is already open the identifier can't be changed */ diff --git a/winpr/libwinpr/utils/wlog/wlog.c b/winpr/libwinpr/utils/wlog/wlog.c index 4791c15c1..14e8f8bc8 100644 --- a/winpr/libwinpr/utils/wlog/wlog.c +++ b/winpr/libwinpr/utils/wlog/wlog.c @@ -220,7 +220,7 @@ static BOOL log_recursion(LPCSTR file, LPCSTR fkt, size_t line) #endif status = TRUE; out: - free(msg); + free((void*)msg); winpr_backtrace_free(bt); return status; } @@ -678,7 +678,7 @@ BOOL WLog_ParseFilter(wLog* root, wLogFilter* filter, LPCSTR name) if (!q) { free(names); - free(filter->Names); + free((void*)filter->Names); filter->Names = NULL; filter->NameCount = 0; return FALSE; @@ -691,7 +691,7 @@ BOOL WLog_ParseFilter(wLog* root, wLogFilter* filter, LPCSTR name) if (iLevel < 0) { free(names); - free(filter->Names); + free((void*)filter->Names); filter->Names = NULL; filter->NameCount = 0; return FALSE; @@ -904,7 +904,7 @@ wLog* WLog_New(LPCSTR name, wLog* rootLogger) return log; out_fail: - free(log->Children); + free((void*)log->Children); free(log->Name); free(log); return NULL; @@ -922,8 +922,8 @@ void WLog_Free(wLog* log) free(log->Name); free(log->Names[0]); - free(log->Names); - free(log->Children); + free((void*)log->Names); + free((void*)log->Children); DeleteCriticalSection(&log->lock); free(log); } @@ -950,20 +950,16 @@ static BOOL WLog_AddChild(wLog* parent, wLog* child) if (!parent->ChildrenSize) { - if (parent->Children) - free(parent->Children); - + free((void*)parent->Children); parent->Children = NULL; } else { - tmp = (wLog**)realloc(parent->Children, sizeof(wLog*) * parent->ChildrenSize); + tmp = (wLog**)realloc((void*)parent->Children, sizeof(wLog*) * parent->ChildrenSize); if (!tmp) { - if (parent->Children) - free(parent->Children); - + free((void*)parent->Children); parent->Children = NULL; goto exit; }