From 1628a5c6a2b0ec14ebc5f99bf771f8291316a28d Mon Sep 17 00:00:00 2001 From: Edgar Hucek Date: Mon, 13 Jun 2011 13:46:06 +0800 Subject: [PATCH] libva: fix memeory leaks in libva Signed-off-by: Edgar Hucek Signed-off-by: Xiang, Haihao --- va/x11/dri2_util.c | 3 +++ va/x11/va_x11.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/va/x11/dri2_util.c b/va/x11/dri2_util.c index 298cd31..8a6dd4f 100644 --- a/va/x11/dri2_util.c +++ b/va/x11/dri2_util.c @@ -193,6 +193,9 @@ isDRI2Connected(VADriverContextP ctx, char **driver_name) dri_state->close = dri2Close; gsDRI2SwapAvailable = (minor >= 2); + if (device_name) + Xfree(device_name); + return True; err_out: diff --git a/va/x11/va_x11.c b/va/x11/va_x11.c index fd7e517..0d62534 100644 --- a/va/x11/va_x11.c +++ b/va/x11/va_x11.c @@ -54,9 +54,18 @@ static void va_DisplayContextDestroy ( VADisplayContextP pDisplayContext ) { + VADriverContextP ctx; + struct dri_state *dri_state; + if (pDisplayContext == NULL) return; + ctx = pDisplayContext->pDriverContext; + dri_state = ctx->dri_state; + + if (dri_state) + dri_state->close(ctx); + free(pDisplayContext->pDriverContext->dri_state); free(pDisplayContext->pDriverContext); free(pDisplayContext); -- 2.7.4