From e03d4142ef22bc15c24a3969e32933e17bab1c23 Mon Sep 17 00:00:00 2001 From: Benjamin Jacobs Date: Mon, 11 Jul 2016 14:19:59 +0900 Subject: [PATCH] ecore_x: NULL derefs. Reviewers: raster, devilhorns Subscribers: raster, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4018 --- src/lib/ecore_x/xcb/ecore_xcb.c | 9 ++++++--- src/lib/ecore_x/xlib/ecore_x.c | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore_x/xcb/ecore_xcb.c b/src/lib/ecore_x/xcb/ecore_xcb.c index 15107fb..9e08aef 100644 --- a/src/lib/ecore_x/xcb/ecore_xcb.c +++ b/src/lib/ecore_x/xcb/ecore_xcb.c @@ -504,9 +504,12 @@ ecore_x_client_message8_send(Ecore_X_Window win, Ecore_X_Atom type, ev.format = 8; ev.window = win; ev.type = type; - if (len > 20) len = 20; - memcpy(ev.data.data8, data, len); - memset(ev.data.data8 + len, 0, 20 - len); + if (len > 20) + len = 20; + if (data && len > 0) + memcpy(ev.data.data8, data, len); + if (len < 20) + memset(ev.data.data8 + len, 0, 20 - len); cookie = xcb_send_event(_ecore_xcb_conn, 0, win, XCB_EVENT_MASK_NO_EVENT, (const char *)&ev); diff --git a/src/lib/ecore_x/xlib/ecore_x.c b/src/lib/ecore_x/xlib/ecore_x.c index 546257b..ae8b5bd 100644 --- a/src/lib/ecore_x/xlib/ecore_x.c +++ b/src/lib/ecore_x/xlib/ecore_x.c @@ -2124,7 +2124,8 @@ ecore_x_client_message8_send(Ecore_X_Window win, if (len > 20) len = 20; - memcpy(xev.xclient.data.b, data, len); + if (data && len > 0) + memcpy(xev.xclient.data.b, data, len); if (len < 20) memset(xev.xclient.data.b + len, 0, 20 - len); -- 2.7.4