From 4897ebfcc62d46ea201f22659001239b7ffae16e Mon Sep 17 00:00:00 2001 From: Junseok Kim Date: Tue, 6 Aug 2024 13:59:52 +0900 Subject: [PATCH] e_client: fix segfault when the w or h is NULL Change-Id: I79a67e6f1c01ba56542a44b0e92090fd20b6a0dd --- src/bin/core/e_client.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/bin/core/e_client.c b/src/bin/core/e_client.c index caaefde..fceb24c 100644 --- a/src/bin/core/e_client.c +++ b/src/bin/core/e_client.c @@ -3826,6 +3826,7 @@ e_client_size_get(E_Client *ec, int *w, int *h) E_API void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h) { + int vx, vy, vw, vh; E_OBJECT_CHECK(ec); E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE); @@ -3841,9 +3842,15 @@ e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h) } else if (view_client) { - e_view_client_geometry_get(view_client, x, y, w, h); - if (*w != 0 || *h != 0) - return; + e_view_client_geometry_get(view_client, &vx, &vy, &vw, &vh); + if (vw != 0 || vh != 0) + { + if (x) *x = vx; + if (y) *y = vy; + if (w) *w = vw; + if (h) *h = vh; + return; + } /* In this case (w == 0 && h == 0), there is no image buffer in e_comp_object, thus it * should return geometry value of ec itself. It usually happens if -- 2.7.4