devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=50a37e72fc6ba7f64000082917f111a26447257a

commit 50a37e72fc6ba7f64000082917f111a26447257a
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Fri Jun 5 13:39:41 2015 -0400

    evas-gl-drm: Trap for invalid gbm bo
    
    Summary: If we fail to lock the front buffer, we will not get a valid
    bo returned so we should not be calling other functions which require
    a bo.
    
    @fix
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 src/modules/evas/engines/gl_drm/evas_outbuf.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/modules/evas/engines/gl_drm/evas_outbuf.c 
b/src/modules/evas/engines/gl_drm/evas_outbuf.c
index 6a9d7b8..fcb3c61 100644
--- a/src/modules/evas/engines/gl_drm/evas_outbuf.c
+++ b/src/modules/evas/engines/gl_drm/evas_outbuf.c
@@ -69,6 +69,7 @@ _evas_outbuf_cb_pageflip(void *data)
    if (!(ob = data)) return;
 
    bo = ob->priv.bo[ob->priv.curr];
+   if (!bo) return;
 
    fb = _evas_outbuf_fb_get(ob->info->info.dev, bo);
    if (fb) fb->pending_flip = EINA_FALSE;
@@ -85,6 +86,11 @@ _evas_outbuf_buffer_swap(Outbuf *ob, Eina_Rectangle *rects, 
unsigned int count)
    Ecore_Drm_Fb *fb;
 
    ob->priv.bo[ob->priv.curr] = gbm_surface_lock_front_buffer(ob->surface);
+   if (!ob->priv.bo[ob->priv.curr])
+     {
+        WRN("Could not lock front buffer: %m");
+        return;
+     }
 
    fb = _evas_outbuf_fb_get(ob->info->info.dev, ob->priv.bo[ob->priv.curr]);
    if (fb)

-- 


Reply via email to