[PATCH] shell: fix set_transient

Kristian Høgsberg krh at bitplanet.net
Thu Dec 8 10:00:57 PST 2011


On Thu, Dec 8, 2011 at 9:42 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> In the wl_shell_surface migration, I forgot to correct one cast in
> shell_surface_set_transient(). 'parent_resource' is not a (struct
> wlsc_surface *) but (struct shell_surface *).
>
> This bug corrupts a wlsc_surface::output field, which later (in my
> experiments) leads to a segmentation fault in surface_frame().
>
> Fix the casts.

Thanks, applied.

Kristian

> Signed-off-by: Pekka Paalanen <ppaalanen at gmail.com>
> ---
>  compositor/shell.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/compositor/shell.c b/compositor/shell.c
> index b7cfdd3..3926e52 100644
> --- a/compositor/shell.c
> +++ b/compositor/shell.c
> @@ -315,7 +315,8 @@ shell_surface_set_transient(struct wl_client *client,
>  {
>        struct shell_surface *shsurf = resource->data;
>        struct wlsc_surface *es = shsurf->surface;
> -       struct wlsc_surface *pes = parent_resource->data;
> +       struct shell_surface *pshsurf = parent_resource->data;
> +       struct wlsc_surface *pes = pshsurf->surface;
>
>        /* assign to parents output  */
>        es->output = pes->output;
> --
> 1.7.3.4
>


More information about the wayland-devel mailing list