From 97bb6e89845cb6d85f4d34a4efcc1de2ce585336 Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Wed, 17 Oct 2012 10:57:02 -0700 Subject: Fix valgrind issues We were reading some uninitialized memory when creating bass boost and EQ effects, and using memcpy() with identical source and destination. Change-Id: I15ea1b2c52ae05cbf54aef04351e89805e0ebf8e --- media/libeffects/lvm/lib/Bass/src/LVDBE_Init.c | 5 ++++- media/libeffects/lvm/lib/Eq/src/LVEQNB_Init.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'media/libeffects/lvm/lib') diff --git a/media/libeffects/lvm/lib/Bass/src/LVDBE_Init.c b/media/libeffects/lvm/lib/Bass/src/LVDBE_Init.c index 3b3c07c..32c4ce0 100644 --- a/media/libeffects/lvm/lib/Bass/src/LVDBE_Init.c +++ b/media/libeffects/lvm/lib/Bass/src/LVDBE_Init.c @@ -232,6 +232,10 @@ LVDBE_ReturnStatus_en LVDBE_Init(LVDBE_Handle_t *phInstance, pInstance->pData->AGCInstance.AGC_Gain = pInstance->pData->AGCInstance.AGC_MaxGain; /* Default to the bass boost setting */ + // initialize the mixer with some fixes values since otherwise LVDBE_SetVolume ends up + // reading uninitialized data + pMixer_Instance = &pInstance->pData->BypassVolume; + LVC_Mixer_Init(&pMixer_Instance->MixerStream[0],0x00007FFF,0x00007FFF); /* * Initialise the volume @@ -242,7 +246,6 @@ LVDBE_ReturnStatus_en LVDBE_Init(LVDBE_Handle_t *phInstance, pInstance->pData->AGCInstance.Volume = pInstance->pData->AGCInstance.Target; /* Initialise as the target */ - pMixer_Instance = &pInstance->pData->BypassVolume; MixGain = LVC_Mixer_GetTarget(&pMixer_Instance->MixerStream[0]); LVC_Mixer_Init(&pMixer_Instance->MixerStream[0],MixGain,MixGain); diff --git a/media/libeffects/lvm/lib/Eq/src/LVEQNB_Init.c b/media/libeffects/lvm/lib/Eq/src/LVEQNB_Init.c index e83e515..c4767a8 100644 --- a/media/libeffects/lvm/lib/Eq/src/LVEQNB_Init.c +++ b/media/libeffects/lvm/lib/Eq/src/LVEQNB_Init.c @@ -264,6 +264,9 @@ LVEQNB_ReturnStatus_en LVEQNB_Init(LVEQNB_Handle_t *phInstance, MemSize = (pCapabilities->MaxBands * sizeof(LVEQNB_BandDef_t)); pInstance->pBandDefinitions = (LVEQNB_BandDef_t *)InstAlloc_AddMember(&AllocMem, MemSize); + // clear all the bands, setting their gain to 0, otherwise when applying new params, + // it will compare against uninitialized values + memset(pInstance->pBandDefinitions, 0, MemSize); MemSize = (pCapabilities->MaxBands * sizeof(LVEQNB_BiquadType_en)); pInstance->pBiquadType = (LVEQNB_BiquadType_en *)InstAlloc_AddMember(&AllocMem, MemSize); -- cgit v1.1