jayji pushed a commit to branch master.

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

commit be67c1553ab5af3c2cee42c6d8c0408200c43e34
Author: Jean Guyomarc'h <[email protected]>
Date:   Fri Aug 12 16:36:12 2016 +0200

    elementary: fix memory leaks when using elm_prefs
    
    "regex" is heap-allocated and is not handled by regfree().
    We must explicitely call free() after a regfree() to remove
    the regex_t from memory.
---
 src/modules/elementary/prefs/elm_entry.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/modules/elementary/prefs/elm_entry.c 
b/src/modules/elementary/prefs/elm_entry.c
index 966838e..c5f7657 100644
--- a/src/modules/elementary/prefs/elm_entry.c
+++ b/src/modules/elementary/prefs/elm_entry.c
@@ -113,10 +113,18 @@ _entry_del_cb(void *data EINA_UNUSED,
    Ecore_Timer *timer;
 
    regex = evas_object_data_del(obj, "accept_regex");
-   if (regex) regfree(regex);
+   if (regex)
+     {
+        regfree(regex);
+        free(regex);
+     }
 
    regex = evas_object_data_del(obj, "deny_regex");
-   if (regex) regfree(regex);
+   if (regex)
+     {
+        regfree(regex);
+        free(regex);
+     }
 
    timer = evas_object_data_del(obj, "timer");
    if (timer) ecore_timer_del(timer);
@@ -163,6 +171,7 @@ elm_prefs_entry_add(const Elm_Prefs_Item_Iface *iface 
EINA_UNUSED,
           {
              regerror(ret, regex, buf, sizeof(buf));
              regfree(regex);
+             free(regex);
              ERR("bad regular expression (%s) on item's 'accept' tag (%s)."
                  " Because of that, the 'accept' tag will be dropped for the "
                  "item.", spec.s.accept, buf);
@@ -182,6 +191,7 @@ elm_prefs_entry_add(const Elm_Prefs_Item_Iface *iface 
EINA_UNUSED,
           {
              regerror(ret, regex, buf, sizeof(buf));
              regfree(regex);
+             free(regex);
              ERR("bad regular expression (%s) on item's 'deny' tag (%s)."
                  " Because of that, the 'deny' tag will be dropped for the "
                  "item.", spec.s.deny, buf);

-- 


Reply via email to