From d6af8690572e26df7e07937705925d549b4855b5 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Mon, 20 Jul 2015 20:08:25 +0900 Subject: [PATCH] ecore_drm: Fix SIGFPE caused by 'division by zero' when receiving wrong crtc mode info from drm Change-Id: I08d63de8483a6bee15eb3903cfb2a3f830417554 --- src/lib/ecore_drm/ecore_drm_output.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/ecore_drm/ecore_drm_output.c b/src/lib/ecore_drm/ecore_drm_output.c index 03a07ae..18cad43 100644 --- a/src/lib/ecore_drm/ecore_drm_output.c +++ b/src/lib/ecore_drm/ecore_drm_output.c @@ -125,6 +125,10 @@ _ecore_drm_output_mode_add(Ecore_Drm_Output *output, drmModeModeInfo *info) Ecore_Drm_Output_Mode *mode; uint64_t refresh; + EINA_SAFETY_ON_NULL_RETURN_VAL(info, NULL); + EINA_SAFETY_ON_FALSE_RETURN_VAL((info->htotal > 0), NULL); + EINA_SAFETY_ON_FALSE_RETURN_VAL((info->vtotal > 0), NULL); + /* try to allocate space for mode */ if (!(mode = malloc(sizeof(Ecore_Drm_Output_Mode)))) { -- 2.7.4