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; + } + } } --