From 93d989c048bb231936b66f7532cf4f18beb95e94 Mon Sep 17 00:00:00 2001 From: Sung-Jin Park Date: Tue, 19 May 2020 19:43:05 +0900 Subject: [PATCH] e_xdg_shell_v6: add NULL check for pointer returned from wl_array_add() Change-Id: Ic024a759db181ffcf03dc97c58df529451e728e8 Signed-off-by: Sung-Jin Park --- src/bin/e_xdg_shell_v6.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/bin/e_xdg_shell_v6.c b/src/bin/e_xdg_shell_v6.c index c7a9628720..13e14ef6fc 100644 --- a/src/bin/e_xdg_shell_v6.c +++ b/src/bin/e_xdg_shell_v6.c @@ -382,6 +382,7 @@ _e_xdg_toplevel_configure_send(E_Xdg_Toplevel *toplevel, { uint32_t *s; struct wl_array states; + Eina_Bool array_added = EINA_FALSE; if (!toplevel->resource) return; @@ -392,21 +393,28 @@ _e_xdg_toplevel_configure_send(E_Xdg_Toplevel *toplevel, if (toplevel->pending.state.maximized) { s = wl_array_add(&states, sizeof(uint32_t)); + if (!s) goto err; + array_added = EINA_TRUE; *s = ZXDG_TOPLEVEL_V6_STATE_MAXIMIZED; } if (toplevel->pending.state.fullscreen) { s = wl_array_add(&states, sizeof(uint32_t)); + if (!s) goto err; + array_added = EINA_TRUE; *s = ZXDG_TOPLEVEL_V6_STATE_FULLSCREEN; } if (toplevel->pending.state.resizing) { s = wl_array_add(&states, sizeof(uint32_t)); + if (!s) goto err; + array_added = EINA_TRUE; *s = ZXDG_TOPLEVEL_V6_STATE_RESIZING; } if (toplevel->pending.state.activated) { s = wl_array_add(&states, sizeof(uint32_t)); + if (!s) goto err; *s = ZXDG_TOPLEVEL_V6_STATE_ACTIVATED; } @@ -423,6 +431,12 @@ _e_xdg_toplevel_configure_send(E_Xdg_Toplevel *toplevel, &states); wl_array_release(&states); + return; + +err: + ERR("Failed on adding item to states !", toplevel->base.ec); + if (array_added) wl_array_release(&states); + return; } static void -- 2.34.1