evas: ++safety 13/271913/6
authorMichal Szczecinski <m.szczecinsk@partner.samsung.com>
Thu, 3 Mar 2022 06:23:24 +0000 (07:23 +0100)
committerChun <jykeon@samsung.com>
Thu, 17 Mar 2022 06:49:37 +0000 (06:49 +0000)
Stability tests detected crash in evas_object_pointer_grab_del function.
This commit checks NULL dereference in this API.

Change-Id: I2109755e2c38e44ebbf048b32988dd41f7dc0bb0

src/lib/evas/canvas/evas_object_main.c

index bc440ab..254e9d1 100644 (file)
@@ -129,9 +129,12 @@ void
 evas_object_pointer_grab_del(Evas_Object_Protected_Data *obj,
                              Evas_Object_Pointer_Data *pdata)
 {
-   if ((pdata->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas))
+   //TIZEN_ONLY(20220304): evas: ++safety
+   if ((pdata->mouse_grabbed > 0) && (obj->layer) && (obj->layer->evas) && (pdata->evas_pdata->seat))
      pdata->evas_pdata->seat->mouse_grabbed -= pdata->mouse_grabbed;
-   if (((pdata->mouse_in && pdata->evas_pdata->seat->mouse_grabbed == 0) ||
+
+   //TIZEN_ONLY(20220304): evas: ++safety
+   if (((pdata->mouse_in && pdata->evas_pdata->seat && pdata->evas_pdata->seat->mouse_grabbed == 0) ||
         (pdata->mouse_grabbed > 0)) &&
        (obj->layer) && (obj->layer->evas))
      {