X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FLibrary%2FBrotliCustomDecompressLib%2Fdec%2Fdecode.c;h=6557ba67d56b6fb043a3bc30e3391b72e3a2ec64;hp=67f0ff2cd96fbdb86fcb6ed3dc78b32775c10ae9;hb=2c8d2545f59bf00f0b2460dbeabee6645d130d3e;hpb=d63ed30bb508f46ec304cf1431a67c8f9f2fe0bf diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c index 67f0ff2cd9..6557ba67d5 100644 --- a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c +++ b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c @@ -855,6 +855,7 @@ static BROTLI_NOINLINE void InverseMoveToFrontTransform( uint32_t i = 4; uint32_t upper_bound = state->mtf_upper_bound; uint8_t* mtf = &state->mtf[4]; /* Make mtf[-1] addressable. */ + uint8_t* mtft = &state->mtf[3]; /* Load endian-aware constant. */ const uint8_t b0123[4] = {0, 1, 2, 3}; uint32_t pattern; @@ -875,10 +876,10 @@ static BROTLI_NOINLINE void InverseMoveToFrontTransform( uint8_t value = mtf[index]; upper_bound |= (uint32_t)v[i]; v[i] = value; - mtf[-1] = value; - while (index > 0) { + mtft[0] = value; + while (index >= 0) { + mtft[index + 1] = mtft[index]; index--; - mtf[index + 1] = mtf[index]; } } /* Remember amount of elements to be reinitialized. */