From: Pekka Paalanen Date: Wed, 18 Apr 2012 10:23:09 +0000 (+0300) Subject: simple-shm: handle shm buffer failure X-Git-Tag: 20120702.1049~246^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3baf946b9ae3d93e47c754e49e2ecead3d397db3;p=profile%2Fivi%2Fweston.git simple-shm: handle shm buffer failure Do not segfault, if creating the shm buffer fails. Signed-off-by: Pekka Paalanen --- diff --git a/clients/simple-shm.c b/clients/simple-shm.c index 65c0eae..850567d 100644 --- a/clients/simple-shm.c +++ b/clients/simple-shm.c @@ -101,6 +101,17 @@ create_window(struct display *display, int width, int height) struct window *window; window = malloc(sizeof *window); + + window->buffer = create_shm_buffer(display, + width, height, + WL_SHM_FORMAT_XRGB8888, + &window->shm_data); + + if (!window->buffer) { + free(window); + return NULL; + } + window->callback = NULL; window->display = display; window->width = width; @@ -108,10 +119,6 @@ create_window(struct display *display, int width, int height) window->surface = wl_compositor_create_surface(display->compositor); window->shell_surface = wl_shell_get_shell_surface(display->shell, window->surface); - window->buffer = create_shm_buffer(display, - width, height, - WL_SHM_FORMAT_XRGB8888, - &window->shm_data); wl_shell_surface_set_toplevel(window->shell_surface); @@ -293,6 +300,8 @@ main(int argc, char **argv) display = create_display(); window = create_window(display, 250, 250); + if (!window) + return 1; sigint.sa_handler = signal_int; sigemptyset(&sigint.sa_mask);