ivi-shell: harden get_ivi_shell_surface()

Add more sanity checks to get_ivi_shell_surface() just in case.

If the configure hook is set, we must always have non-NULL
configure_private.

Check the ivi_shell_surface matches the surface.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Eugen Friedrich <friedrix@gmail.com>
This commit is contained in:
Pekka Paalanen 2016-03-16 14:54:12 +02:00
parent fd45f60f4e
commit 94cb06a208

View File

@ -81,10 +81,16 @@ ivi_shell_surface_configure(struct weston_surface *, int32_t, int32_t);
static struct ivi_shell_surface *
get_ivi_shell_surface(struct weston_surface *surface)
{
if (surface->configure == ivi_shell_surface_configure)
return surface->configure_private;
struct ivi_shell_surface *shsurf;
return NULL;
if (surface->configure != ivi_shell_surface_configure)
return NULL;
shsurf = surface->configure_private;
assert(shsurf);
assert(shsurf->surface == surface);
return shsurf;
}
void