devilhorns pushed a commit to branch master.

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

commit f77ba645d58d8a544c0723b3ebc8f8668d7cdd59
Author: Chris Michael <cp.mich...@samsung.com>
Date:   Wed Nov 4 12:44:29 2015 -0500

    ecore-drm: Check return value of drmHandleEvent and cleanup
    
    Summary: drmHandleEvent will return 0 on success, or -1 on error. We
    should trap for the error case so that we can cleanup any allocated
    callback structures.
    
    @fix
    
    Signed-off-by: Chris Michael <cp.mich...@samsung.com>
---
 src/lib/ecore_drm/ecore_drm_fb.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_drm/ecore_drm_fb.c b/src/lib/ecore_drm/ecore_drm_fb.c
index 7805167..68c7e94 100644
--- a/src/lib/ecore_drm/ecore_drm_fb.c
+++ b/src/lib/ecore_drm/ecore_drm_fb.c
@@ -257,5 +257,15 @@ ecore_drm_fb_send(Ecore_Drm_Device *dev, Ecore_Drm_Fb *fb, 
Ecore_Drm_Pageflip_Cb
      }
 
    while (fb->pending_flip)
-     drmHandleEvent(dev->drm.fd, &dev->drm_ctx);
+     {
+        int ret = 0;
+
+        ret = drmHandleEvent(dev->drm.fd, &dev->drm_ctx);
+        if (ret < 0)
+          {
+             ERR("drmHandleEvent Failed: %m");
+             free(cb);
+             break;
+          }
+     }
 }

-- 


Reply via email to