protect wl_egl_buffer->wl_buffer with mutex_lock 86/298986/3
authorjinbong, Lee <jinbong.lee@samsung.com>
Mon, 18 Sep 2023 06:13:55 +0000 (15:13 +0900)
committerjinbong, Lee <jinbong.lee@samsung.com>
Mon, 18 Sep 2023 11:13:58 +0000 (20:13 +0900)
 - wl_egl_buffer->wl_buffer is must protected when call wl_egl_display && wl_egl_display->wl_tbm_client

Change-Id: I223f1521b1f412914194226ce69a996fc4ef91db

src/tpl_wl_egl_thread.c

index 365fead..c927f6e 100755 (executable)
@@ -3685,17 +3685,20 @@ __cb_wl_egl_buffer_free(tpl_wl_egl_buffer_t *wl_egl_buffer)
                tpl_gmutex_unlock(&wl_egl_surface->vblank->mutex);
        }
 
-       if (wl_egl_display) {
+       if (wl_egl_display)
+               wl_display_flush(wl_egl_display->wl_display);
+
+       tpl_gmutex_lock(&wl_egl_buffer->mutex);
+
+       if (wl_egl_display && wl_egl_display->wl_tbm_client) {
                if (wl_egl_buffer->wl_buffer) {
                        wayland_tbm_client_destroy_buffer(wl_egl_display->wl_tbm_client,
                                                                                          (void *)wl_egl_buffer->wl_buffer);
                        wl_egl_buffer->wl_buffer = NULL;
                }
-
-               wl_display_flush(wl_egl_display->wl_display);
        }
 
-       tpl_gmutex_lock(&wl_egl_buffer->mutex);
+
 #if TIZEN_FEATURE_ENABLE
        if (wl_egl_buffer->buffer_release) {
                zwp_linux_buffer_release_v1_destroy(wl_egl_buffer->buffer_release);