[PATCH] Prevent zero sized wl_egl_window

Pekka Paalanen ppaalanen at gmail.com
Thu Feb 13 00:11:09 PST 2014


On Wed, 12 Feb 2014 16:21:11 -0800
Sinclair Yeh <sinclair.yeh at intel.com> wrote:

> It is illegal to create or resize a window to zero (or negative) width
> and/or height.  This patch prevents such a request from happening.
> ---
>  src/egl/wayland/wayland-egl/wayland-egl.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/egl/wayland/wayland-egl/wayland-egl.c
> b/src/egl/wayland/wayland-egl/wayland-egl.c index 8bd49cf..ae78595
> 100644 --- a/src/egl/wayland/wayland-egl/wayland-egl.c
> +++ b/src/egl/wayland/wayland-egl/wayland-egl.c
> @@ -9,6 +9,9 @@ wl_egl_window_resize(struct wl_egl_window *egl_window,
>  		     int width, int height,
>  		     int dx, int dy)
>  {
> +	if (width <= 0 || height <= 0)
> +		return;
> +

The below seems fine, but I wonder if we could make this one cause an
error to be returned later where we can, rather than silently ignoring.
I'm not sure where or how, though.

Surely drivers have maximum size limits, too, those must be catched
somewhere already.

>  	egl_window->width  = width;
>  	egl_window->height = height;
>  	egl_window->dx     = dx;
> @@ -24,6 +27,9 @@ wl_egl_window_create(struct wl_surface *surface,
>  {
>  	struct wl_egl_window *egl_window;
>  
> +	if (width <= 0 || height <= 0)
> +		return NULL;
> +
>  	egl_window = malloc(sizeof *egl_window);
>  	if (!egl_window)
>  		return NULL;

Thanks,
pq


More information about the wayland-devel mailing list