ecore evas extn: Check queue pointer before use. 48/267248/3
authorMichal Szczecinski <m.szczecinsk@partner.samsung.com>
Tue, 30 Nov 2021 08:42:30 +0000 (09:42 +0100)
committerChun <jykeon@samsung.com>
Fri, 3 Dec 2021 02:22:31 +0000 (02:22 +0000)
This commit increates safety of _compositor_socket_get() API.

Change-Id: I44ca3a2a095cba9f1aa073bd7749ec008de358f0

src/modules/ecore_evas/engines/extn/ecore_evas_extn.c

index 2ffc6ab..1bc4dbb 100644 (file)
@@ -1397,16 +1397,27 @@ _compositor_socket_get()
      }
 
    queue = wl_display_create_queue(display_wl);
-   wl_proxy_set_queue((struct wl_proxy *) tec, queue);
+   if (queue)
+     {
+        wl_proxy_set_queue((struct wl_proxy *) tec, queue);
 
-   tizen_embedded_compositor_get_socket(tec);
+        tizen_embedded_compositor_get_socket(tec);
 
-   if (0 > wl_display_roundtrip_queue(display_wl, queue))
+        if (0 > wl_display_roundtrip_queue(display_wl, queue))
+          {
+             tizen_embedded_compositor_destroy(tec);
+             ERR("Fail to wl_display_roundtrip_queue");
+             return -1;
+          }
+        wl_event_queue_destroy(queue);
+     }
+   else
      {
-        ERR("Fail to wl_display_roundtrip_queue");
+        ERR("Fail to create wl_display queue");
+        tizen_embedded_compositor_destroy(tec);
         return -1;
      }
-   wl_event_queue_destroy(queue);
+
    tizen_embedded_compositor_destroy(tec);
    return fd;
 }