commit 50b8225

Michael Forney  ·  2013-11-30 07:37:38 +0000 UTC
parent 28dcc02
shell_surface: Check to make sure resource creation succeeds
1 files changed,  +10, -1
+10, -1
 1@@ -177,7 +177,7 @@ struct swc_shell_surface * swc_shell_surface_new
 2     shell_surface = malloc(sizeof *shell_surface);
 3 
 4     if (!shell_surface)
 5-        return NULL;
 6+        goto error0;
 7 
 8     shell_surface->type = SHELL_SURFACE_TYPE_UNSPECIFIED;
 9     swc_window_initialize(&shell_surface->window.base,
10@@ -185,10 +185,19 @@ struct swc_shell_surface * swc_shell_surface_new
11 
12     shell_surface->resource = wl_resource_create
13         (client, &wl_shell_surface_interface, 1, id);
14+
15+    if (!shell_surface->resource)
16+        goto error1;
17+
18     wl_resource_set_implementation(shell_surface->resource,
19                                    &shell_surface_implementation,
20                                    shell_surface, NULL);
21 
22     return shell_surface;
23+
24+  error1:
25+    free(shell_surface);
26+  error0:
27+    return NULL;
28 }
29