[x265] [PATCH] fix read uninitialize memory warning in Valgrind-3.10.0

Deepthi Nandakumar deepthi at multicorewareinc.com
Thu Nov 26 04:50:08 CET 2015


Thanks, queued with one change

On Thu, Nov 26, 2015 at 2:07 AM, Min Chen <chenm003 at 163.com> wrote:

> # HG changeset patch
> # User Min Chen <chenm003 at 163.com>
> # Date 1448483847 21600
> # Node ID 64aa89a464aaccfa8098b25ec0b76c3e5aa4195a
> # Parent  e10bc3910caa2cd61a93f68db29e44b5e18c73ea
> fix read uninitialize memory warning in Valgrind-3.10.0
> ---
>  source/encoder/entropy.cpp |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff -r e10bc3910caa -r 64aa89a464aa source/encoder/entropy.cpp
> --- a/source/encoder/entropy.cpp        Tue Nov 24 10:18:25 2015 -0600
> +++ b/source/encoder/entropy.cpp        Wed Nov 25 14:37:27 2015 -0600
> @@ -1566,11 +1566,14 @@
>      uint8_t * const baseCtx = bIsLuma ? &m_contextState[OFF_SIG_FLAG_CTX]
> : &m_contextState[OFF_SIG_FLAG_CTX + NUM_SIG_FLAG_CTX_LUMA];
>      uint32_t c1 = 1;
>      int scanPosSigOff = scanPosLast - (lastScanSet << MLS_CG_SIZE) - 1;
> -    ALIGN_VAR_32(uint16_t, absCoeff[(1 << MLS_CG_SIZE) + 1]);   // extra
> 2 bytes space for AVX2 assembly
> +    ALIGN_VAR_32(uint16_t, absCoeff[(1 << MLS_CG_SIZE) + 1]);   // extra
> 2 bytes(+1) space for AVX2 assembly, +1 because (numNonZero<=1) in
> costCoeffNxN path
>      uint32_t numNonZero = 1;
>      unsigned long lastNZPosInCG;
>      unsigned long firstNZPosInCG;
>
>
wrapped this under #if _DEBUG


> +    // Unnecessary, for Valgrind-3.10.0 only
> +    memset(absCoeff, 0, sizeof(absCoeff));
> +
>      absCoeff[0] = (uint16_t)abs(coeff[posLast]);
>
>      for (int subSet = lastScanSet; subSet >= 0; subSet--)
> @@ -1716,6 +1719,7 @@
>              {
>                  // maximum g_entropyBits are 18-bits and maximum of count
> are 16, so intermedia of sum are 22-bits
>                  const uint8_t *tabSigCtx = table_cnt[(log2TrSize == 2) ?
> 4 : (uint32_t)patternSigCtx];
> +                X265_CHECK(numNonZero <= 1, "numNonZero check failure");
>                  uint32_t sum =
> primitives.costCoeffNxN(g_scan4x4[codingParameters.scanType],
> &coeff[blkPosBase], (intptr_t)trSize, absCoeff + numNonZero, tabSigCtx,
> scanFlagMask, baseCtx, offset + posOffset, scanPosSigOff, subPosBase);
>
>  #if CHECKED_BUILD || _DEBUG
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>



-- 
Deepthi Nandakumar
Engineering Manager, x265
Multicoreware, Inc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20151126/998ba3f4/attachment.html>


More information about the x265-devel mailing list