[Intel-gfx] xf86-video-intel: 3 commits - src/intel_display.c src/intel_dri.c src/intel.h

Julien Cristau jcristau at debian.org
Thu Mar 24 19:31:03 CET 2011


On Thu, Mar 24, 2011 at 11:09:36 -0700, Keith Packard wrote:

> diff --git a/src/intel_dri.c b/src/intel_dri.c
> index 3b80823..f7a4fc4 100644
> --- a/src/intel_dri.c
> +++ b/src/intel_dri.c
> @@ -625,8 +625,10 @@ i830_dri2_add_frame_event(DRI2FrameEventPtr frame_event)
>  	if (!AddResource(frame_event->client_id, frame_event_client_type, frame_event))
>  		return FALSE;
>  
> -	if (!AddResource(frame_event->drawable_id, frame_event_drawable_type, frame_event))
> +	if (!AddResource(frame_event->drawable_id, frame_event_drawable_type, frame_event)) {
> +		FreeResourceByType(frame_event->client_id, frame_event_client_type, TRUE);
>  		return FALSE;
> +	}
>  
>  	return TRUE;
>  }
> @@ -705,7 +707,10 @@ I830DRI2ScheduleFlip(struct intel_screen_private *intel,
>  	flip_info->event_data = data;
>  	flip_info->frame = target_msc;
>  
> -	i830_dri2_add_frame_event(flip_info);
> +	if (!i830_dri2_add_frame_event(flip_info)) {
> +	    free(flip_info);
> +	    return FALSE;
> +	}
>  
>  	/* Page flip the full screen buffer */
>  	back_priv = back->driverPrivate;
> @@ -958,7 +963,10 @@ I830DRI2ScheduleSwap(ClientPtr client, DrawablePtr draw, DRI2BufferPtr front,
>  	I830DRI2ReferenceBuffer(front);
>  	I830DRI2ReferenceBuffer(back);
>  
> -	i830_dri2_add_frame_event(swap_info);
> +	if (!i830_dri2_add_frame_event(swap_info)) {
> +	    free(swap_info);

This will cause a double free as the blit_fallback path does it too.

> +	    goto blit_fallback;
> +	}
>  
>  	/* Get current count */
>  	vbl.request.type = DRM_VBLANK_RELATIVE;
> 

Cheers,
Julien



More information about the Intel-gfx mailing list