This patch adds checks for themes and cursors returned by wl_cursor functions.
Reviewed-by: Bryce Harrington <b.harrington@samsung.com>
else if (cursor) {
image = display->default_cursor->images[0];
buffer = wl_cursor_image_get_buffer(image);
+ if (!buffer)
+ return;
wl_pointer_set_cursor(pointer, serial,
display->cursor_surface,
image->hotspot_x,
d->shm = wl_registry_bind(registry, name,
&wl_shm_interface, 1);
d->cursor_theme = wl_cursor_theme_load(NULL, 32, d->shm);
+ if (!d->cursor_theme) {
+ fprintf(stderr, "unable to load default theme\n");
+ return;
+ }
d->default_cursor =
wl_cursor_theme_get_cursor(d->cursor_theme, "left_ptr");
+ if (!d->default_cursor) {
+ fprintf(stderr, "unable to load default left pointer\n");
+ // TODO: abort ?
+ }
}
}
weston_config_destroy(config);
display->cursor_theme = wl_cursor_theme_load(theme, size, display->shm);
+ if (!display->cursor_theme) {
+ fprintf(stderr, "could not load theme '%s'\n", theme);
+ return;
+ }
free(theme);
display->cursors =
xmalloc(ARRAY_LENGTH(cursors) * sizeof display->cursors[0]);
image = input->compositor->cursor->images[0];
buffer = wl_cursor_image_get_buffer(image);
-
+ if (!buffer)
+ return;
wl_pointer_set_cursor(input->parent.pointer, input->enter_serial,
input->parent.cursor.surface,
weston_config_section_get_int(s, "cursor-size", &size, 32);
c->cursor_theme = wl_cursor_theme_load(theme, size, c->parent.shm);
+ if (!c->cursor_theme) {
+ fprintf(stderr, "could not load cursor theme\n");
+ return;
+ }
free(theme);