wayland: Check for potential OOM from wl_array_add()
authorBryce Harrington <bryce@osg.samsung.com>
Tue, 10 Mar 2015 06:07:38 +0000 (15:07 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Tue, 10 Mar 2015 06:07:38 +0000 (15:07 +0900)
Summary:
wl_array_add() returns NULL if it can't malloc/realloc.  This
is probably unlikely but check for it and issue a meaningful error if it
occurs.

Reviewers: cedric, devilhorns, zmike, raster

Reviewed By: raster

Subscribers: raster, cedric

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

src/bin/e_comp_wl.c

index 8bfdd71..4de11c4 100644 (file)
@@ -815,7 +815,11 @@ _e_comp_wl_cb_key_down(void *event)
      }
 
    cdata->kbd.keys.size = (const char *)end - (const char *)cdata->kbd.keys.data;
-   k = wl_array_add(&cdata->kbd.keys, sizeof(*k));
+   if (!(k = wl_array_add(&cdata->kbd.keys, sizeof(*k))))
+     {
+        DBG("wl_array_add: Out of memory\n");
+        return;
+     }
    *k = keycode;
 
    if ((ec = e_client_focused_get()))