Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97bb6e89 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

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
parent 9bccfb55
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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);

+3 −0
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -2737,7 +2737,7 @@ int Effect_process(effect_handle_t self,
                outBuffer->s16[i] =
                        clamp16((LVM_INT32)outBuffer->s16[i] + (LVM_INT32)inBuffer->s16[i]);
            }
        } else {
        } else if (outBuffer->raw != inBuffer->raw) {
            memcpy(outBuffer->raw, inBuffer->raw, outBuffer->frameCount*sizeof(LVM_INT16)*2);
        }
    }