From 7e0e62c5cec879676fa299b5272bcc192d992eb5 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 11 Mar 2025 09:19:38 +0100 Subject: [PATCH] [null-dereference] fix possible NULL dereference --- client/X11/xf_event.c | 3 ++- libfreerdp/core/window.c | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/client/X11/xf_event.c b/client/X11/xf_event.c index 25110b37a..8b17b4f3a 100644 --- a/client/X11/xf_event.c +++ b/client/X11/xf_event.c @@ -442,7 +442,8 @@ BOOL xf_generic_MotionNotify(xfContext* xfc, int x, int y, int state, Window win if (xfc->fullscreen && !app) { - XSetInputFocus(xfc->display, xfc->window->handle, RevertToPointerRoot, CurrentTime); + if (xfc->window) + XSetInputFocus(xfc->display, xfc->window->handle, RevertToPointerRoot, CurrentTime); } return TRUE; diff --git a/libfreerdp/core/window.c b/libfreerdp/core/window.c index 6f4ca7394..3a051be30 100644 --- a/libfreerdp/core/window.c +++ b/libfreerdp/core/window.c @@ -997,7 +997,8 @@ static BOOL update_recv_notification_icon_info_order(rdpUpdate* update, wStream* return result; } -static BOOL update_read_desktop_actively_monitored_order(wStream* s, WINDOW_ORDER_INFO* orderInfo, +static BOOL update_read_desktop_actively_monitored_order(wStream* s, + const WINDOW_ORDER_INFO* orderInfo, MONITORED_DESKTOP_ORDER* monitored_desktop) { if (orderInfo->fieldFlags & WINDOW_ORDER_FIELD_DESKTOP_ACTIVE_WND) @@ -1016,7 +1017,10 @@ static BOOL update_read_desktop_actively_monitored_order(wStream* s, WINDOW_ORDE Stream_Read_UINT8(s, monitored_desktop->numWindowIds); /* numWindowIds (1 byte) */ if (!Stream_CheckAndLogRequiredLengthOfSize(TAG, s, monitored_desktop->numWindowIds, 4ull)) + { + monitored_desktop->numWindowIds = 0; return FALSE; + } if (monitored_desktop->numWindowIds > 0) { @@ -1027,6 +1031,7 @@ static BOOL update_read_desktop_actively_monitored_order(wStream* s, WINDOW_ORDE { free(monitored_desktop->windowIds); monitored_desktop->windowIds = NULL; + monitored_desktop->numWindowIds = 0; return FALSE; }