diff --git a/src/lib/ecore_x/xlib/ecore_x_window_prop.c b/src/lib/ecore_x/xlib/ecore_x_window_prop.c index 151f65a8bc..043e50e391 100644 --- a/src/lib/ecore_x/xlib/ecore_x_window_prop.c +++ b/src/lib/ecore_x/xlib/ecore_x_window_prop.c @@ -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);