[Mesa-dev] [PATCH mesa] i965: fix resource leak
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Sun Jun 10 18:32:57 UTC 2018
On 10/06/18 18:42, Eric Engestrom wrote:
> Coverity ID: 1436909
> Fixes: 3352f2d746d3959b22ca4 "i965: Create multiple miptrees for planar YUV images"
> Signed-off-by: Eric Engestrom <eric at engestrom.ch>
> ---
> src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> index 69024c0678bedc3a6d2c..d678d615b9080e5f2c7f 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> @@ -907,8 +907,9 @@ miptree_create_for_planar_image(struct brw_context *brw,
> {
> const struct intel_image_format *f = image->planar_format;
> struct intel_mipmap_tree *planar_mt = NULL;
> + int i;
>
> - for (int i = 0; i < f->nplanes; i++) {
> + for (i = 0; i < f->nplanes; i++) {
> const int index = f->planes[i].buffer_index;
> const uint32_t dri_format = f->planes[i].dri_format;
> const mesa_format format = driImageFormatToGLFormat(dri_format);
> @@ -928,7 +929,7 @@ miptree_create_for_planar_image(struct brw_context *brw,
> tiling,
> MIPTREE_CREATE_NO_AUX);
> if (mt == NULL)
> - return NULL;
> + goto fail;
>
> mt->target = target;
>
> @@ -941,6 +942,13 @@ miptree_create_for_planar_image(struct brw_context *brw,
> planar_mt->drm_modifier = image->modifier;
>
> return planar_mt;
> +
> +fail:
> + while (i--) {
> + intel_miptree_release(&planar_mt->plane[i]);
> + }
> + intel_miptree_release(&planar_mt);
intel_miptree_release(&planar_mt); seems to release it's planes, so why
not just that? :
if (mt == NULL) {
intel_miptree_release(&planar_mt);
return NULL;
}
> + return NULL;
> }
>
> static bool
More information about the mesa-dev
mailing list