ecore_x: handling realloc failure.
authorSrivardhan Hebbar <sri.hebbar@samsung.com>
Mon, 19 Oct 2015 18:21:22 +0000 (11:21 -0700)
committerCedric BAIL <cedric@osg.samsung.com>
Mon, 19 Oct 2015 18:23:33 +0000 (11:23 -0700)
Summary:
If realloc fails, lst would be NULL. So handling it.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3182

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/lib/ecore_x/xlib/ecore_x_window_prop.c

index 151f65a..043e50e 100644 (file)
@@ -285,7 +285,7 @@ ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
                                     Ecore_X_ID item,
                                     int op)
 {
-   Ecore_X_ID *lst;
+   Ecore_X_ID *lst, *temp;
    int i, num;
 
    LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -319,8 +319,18 @@ ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
           goto done;  /* Add it */
 
         num++;
+
+        temp = lst;
         lst = realloc(lst, num * sizeof(Ecore_X_ID));
-        lst[i] = item;
+        if (lst)
+          {
+             lst[i] = item;
+          }
+        else
+          {
+             lst = temp;
+             num--;
+          }
      }
 
    ecore_x_window_prop_xid_set(win, atom, type, lst, num);