[PATCH] shell: Fix 2 switcher crashes.

Kristian Hoegsberg hoegsberg at gmail.com
Tue Mar 20 10:49:33 PDT 2012


On Mon, Mar 12, 2012 at 04:06:01PM +0800, zhiwen.wu at linux.intel.com wrote:
> From: Alex Wu <zhiwen.wu at linux.intel.com>
> 
> In case of no regular window, switcher will crash in switch_next()
> due to "next == NULL" and in switcher_destroy() due to
> "switcher->current == NULL".

Thanks, applied.
Kristian

> ---
>  src/shell.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/src/shell.c b/src/shell.c
> index 765b0a4..28d5ea7 100644
> --- a/src/shell.c
> +++ b/src/shell.c
> @@ -1840,6 +1840,9 @@ switcher_next(struct switcher *switcher)
>  	if (next == NULL)
>  		next = first;
>  
> +	if (next == NULL) 
> +		return;
> +
>  	wl_list_remove(&switcher->listener.link);
>  	wl_list_insert(next->surface.resource.destroy_listener_list.prev,
>  		       &switcher->listener.link);
> @@ -1871,7 +1874,8 @@ switcher_destroy(struct switcher *switcher, uint32_t time)
>  		weston_surface_damage(surface);
>  	}
>  
> -	activate(compositor->shell, switcher->current, device, time);
> +	if (switcher->current)
> +		activate(compositor->shell, switcher->current, device, time);
>  	wl_list_remove(&switcher->listener.link);
>  	wl_input_device_end_keyboard_grab(&device->input_device, time);
>  	free(switcher);
> -- 
> 1.7.5.4
> 


More information about the wayland-devel mailing list