ecore_xcb: handle realloc failure.
authorSrivardhan Hebbar <sri.hebbar@samsung.com>
Thu, 8 Oct 2015 10:20:46 +0000 (12:20 +0200)
committerCedric BAIL <cedric@osg.samsung.com>
Fri, 9 Oct 2015 08:00:32 +0000 (10:00 +0200)
Summary:
If realloc fails, then lst would be NULL, so assigning lst[i] only if realloc is successful, else assigning lst to previous memory location.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

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

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

index 85db1eb..d3a049b 100644 (file)
@@ -518,7 +518,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 = 0, num = 0;
 
    LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -545,8 +545,12 @@ ecore_x_window_prop_xid_list_change(Ecore_X_Window win,
         if (op == ECORE_X_PROP_LIST_REMOVE)
           goto done;
         num++;
+        temp = lst;
         lst = realloc(lst, num * sizeof(Ecore_X_ID));
-        lst[i] = item;
+        if (lst)
+           lst[i] = item;
+        else
+           lst = temp;
      }
    ecore_x_window_prop_xid_set(win, atom, type, lst, num);