From 94cb06a208130b0ee16553a2cd513e5e7d67f368 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 16 Mar 2016 14:54:12 +0200 Subject: [PATCH] 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 Reviewed-by: Eugen Friedrich --- ivi-shell/ivi-shell.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c index d136f460..c502c742 100644 --- a/ivi-shell/ivi-shell.c +++ b/ivi-shell/ivi-shell.c @@ -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; + + if (surface->configure != ivi_shell_surface_configure) + return NULL; + + shsurf = surface->configure_private; + assert(shsurf); + assert(shsurf->surface == surface); - return NULL; + return shsurf; } void