[PATCH] Add error handling for wl_cursors

Kristian Høgsberg hoegsberg at gmail.com
Tue Apr 1 16:29:40 PDT 2014


On Tue, Mar 18, 2014 at 11:29:00AM +0100, Hardening wrote:
> This patch adds some error management in wayland cursors
> ---
>  cursor/wayland-cursor.c | 20 +++++++++++++-------
>  1 file changed, 13 insertions(+), 7 deletions(-)

Committed this one and the weston cursor error fix.

Kristian

> diff --git a/cursor/wayland-cursor.c b/cursor/wayland-cursor.c
> index b16f530..dba3b51 100644
> --- a/cursor/wayland-cursor.c
> +++ b/cursor/wayland-cursor.c
> @@ -94,6 +94,8 @@ shm_pool_resize(struct shm_pool *pool, int size)
>  
>  	pool->data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED,
>  			  pool->fd, 0);
> +	if (pool->data == (void *)-1)
> +		return 0;
>  	pool->size = size;
>  
>  	return 1;
> @@ -391,17 +393,15 @@ wl_cursor_theme_load(const char *name, int size, struct wl_shm *shm)
>  		name = "default";
>  
>  	theme->name = strdup(name);
> +	if (!theme->name)
> +		goto out_error_name;
>  	theme->size = size;
>  	theme->cursor_count = 0;
>  	theme->cursors = NULL;
>  
> -	theme->pool =
> -		shm_pool_create(shm, size * size * 4);
> -	if (!theme->pool) {
> -		free(theme->name);
> -		free(theme);
> -		return NULL;
> -	}
> +	theme->pool = shm_pool_create(shm, size * size * 4);
> +	if (!theme->pool)
> +		goto out_error_pool;
>  
>  	xcursor_load_theme(name, size, load_callback, theme);
>  
> @@ -409,6 +409,12 @@ wl_cursor_theme_load(const char *name, int size, struct wl_shm *shm)
>  		load_default_theme(theme);
>  
>  	return theme;
> +
> +out_error_pool:
> +	free(theme->name);
> +out_error_name:
> +	free(theme);
> +	return NULL;
>  }
>  
>  /** Destroys a cursor theme object
> -- 
> 1.8.1.2
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list