From 23676f34fb548a131230c81b572e345e621b2437 Mon Sep 17 00:00:00 2001 From: Patryk Kaczmarek Date: Wed, 19 Sep 2012 10:39:27 +0000 Subject: [PATCH] From: Patryk Kaczmarek Subject: Re: [E-devel] [Patch] [Ecore] Patch with NULL checks to some functions in ecore module I had prepared patch for some Ecore functions which, in my opinion, critically need NULL checks. I had tried to keep each file convention. SVN revision: 76852 --- legacy/ecore/src/lib/ecore_evas/ecore_evas_util.c | 8 +++++++- legacy/ecore/src/lib/ecore_file/ecore_file.c | 2 ++ .../src/lib/ecore_file/ecore_file_download.c | 6 ++++++ .../ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c | 15 +++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_util.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_util.c index 5aca86c271..a86096935f 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_util.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_util.c @@ -424,8 +424,14 @@ ecore_getopt_callback_ecore_evas_list_engines(const Ecore_Getopt *parser __UNUSE { Eina_List *lst, *n; const char *engine; - FILE *fp = data; + if (!storage) + { + ERR("Storage is missing"); + return 0; + } + + FILE *fp = data; if (!fp) fp = stdout; diff --git a/legacy/ecore/src/lib/ecore_file/ecore_file.c b/legacy/ecore/src/lib/ecore_file/ecore_file.c index e8400ca57d..c59bf8054e 100644 --- a/legacy/ecore/src/lib/ecore_file/ecore_file.c +++ b/legacy/ecore/src/lib/ecore_file/ecore_file.c @@ -1011,6 +1011,8 @@ ecore_file_escape_name(const char *filename) char *q; char buf[PATH_MAX]; + EINA_SAFETY_ON_NULL_RETURN_VAL(filename, NULL); + p = filename; q = buf; while (*p) diff --git a/legacy/ecore/src/lib/ecore_file/ecore_file_download.c b/legacy/ecore/src/lib/ecore_file/ecore_file_download.c index ea8550d6a3..03e593bd20 100644 --- a/legacy/ecore/src/lib/ecore_file/ecore_file_download.c +++ b/legacy/ecore/src/lib/ecore_file/ecore_file_download.c @@ -110,6 +110,12 @@ _ecore_file_download(const char *url, Eina_Hash *headers) { #ifdef BUILD_ECORE_CON + if (!url) + { + CRIT("Download URL is null"); + return EINA_FALSE; + } + char *dir = ecore_file_dir_get(dst); if (!ecore_file_is_dir(dir)) diff --git a/legacy/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c b/legacy/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c index cd6ec41b23..2d13b8eea6 100644 --- a/legacy/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c +++ b/legacy/ecore/src/lib/ecore_imf_evas/ecore_imf_evas.c @@ -1,7 +1,10 @@ + #ifdef HAVE_CONFIG_H # include #endif +#include +#include "ecore_private.h" #include "Ecore_IMF_Evas.h" /** @@ -299,6 +302,18 @@ EAPI void ecore_imf_evas_event_key_up_wrap(Evas_Event_Key_Up *evas_event, Ecore_IMF_Event_Key_Up *imf_event) { + if (!evas_event) + { + ERR("Evas event is missing"); + return; + } + + if (!imf_event) + { + ERR("Imf event is missing"); + return; + } + imf_event->keyname = evas_event->keyname ? evas_event->keyname : _ecore_imf_evas_event_empty; imf_event->key = evas_event->key ? evas_event->key : _ecore_imf_evas_event_empty; imf_event->string = evas_event->string ? evas_event->string : _ecore_imf_evas_event_empty;