From 8c30df14b10c55bb1d4f6a5518c8bc786de3bea0 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 26 Feb 2015 18:33:10 -0600 Subject: layers: Fix MemTracker memory leak Call to string helper function was not freeing returned memory. --- layers/mem_tracker.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/layers/mem_tracker.c b/layers/mem_tracker.c index df2cdd73..a0903cd9 100644 --- a/layers/mem_tracker.c +++ b/layers/mem_tracker.c @@ -655,11 +655,15 @@ static void printMemList() layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str); sprintf(str, " pNext Mem Obj Node: %p", (void*)pTrav->pNextGlobalNode); layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str); - if (0 != pTrav->allocInfo.allocationSize) - sprintf(str, " Mem Alloc info:\n%s", xgl_print_xgl_memory_alloc_info(&pTrav->allocInfo, "{MEM}INFO : ")); - else + if (0 != pTrav->allocInfo.allocationSize) { + char* pAllocInfoMsg = xgl_print_xgl_memory_alloc_info(&pTrav->allocInfo, "{MEM}INFO : "); + sprintf(str, " Mem Alloc info:\n%s", pAllocInfoMsg); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str); + free(pAllocInfoMsg); + } else { sprintf(str, " Mem Alloc info is NULL (alloc done by xglWsiX11CreatePresentableImage())"); - layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str); + layerCbMsg(XGL_DBG_MSG_UNKNOWN, XGL_VALIDATION_LEVEL_0, NULL, 0, MEMTRACK_NONE, "MEM", str); + } MINI_NODE* pObjTrav = pTrav->pObjBindings; if (!pObjTrav) { sprintf(str, " No XGL Object bindings"); -- cgit v1.2.3