diff options
author | Fraunhofer IIS FDK <audio-fdk@iis.fraunhofer.de> | 2018-12-20 15:52:46 +0100 |
---|---|---|
committer | Jean-Michel Trivi <jmtrivi@google.com> | 2019-01-02 13:36:02 -0500 |
commit | f440f28aa3cfa02d52abb89e7db24d16f6eb0172 (patch) | |
tree | 75a7e33f1daae846b566295d979091cce236e17d /libSACdec | |
parent | 4a22282fe0cbf79555ea4535fa9723966509912a (diff) | |
download | fdk-aac-f440f28aa3cfa02d52abb89e7db24d16f6eb0172.tar.gz fdk-aac-f440f28aa3cfa02d52abb89e7db24d16f6eb0172.tar.bz2 fdk-aac-f440f28aa3cfa02d52abb89e7db24d16f6eb0172.zip |
Return SpatialDecDecodeFrame() parse error in case extended frame does not match the spatial frame
Test: atest DecoderTestXheAac ; atest DecoderTestAacDrc
Change-Id: I7add6dff3b60ba0b36e5c83cee8031b37e970890
Diffstat (limited to 'libSACdec')
-rw-r--r-- | libSACdec/src/sac_bitdec.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libSACdec/src/sac_bitdec.cpp b/libSACdec/src/sac_bitdec.cpp index da5b262..1049c3d 100644 --- a/libSACdec/src/sac_bitdec.cpp +++ b/libSACdec/src/sac_bitdec.cpp @@ -1870,6 +1870,16 @@ SACDEC_ERROR SpatialDecDecodeFrame(spatialDec *self, SPATIAL_BS_FRAME *frame) { frame->numParameterSets = fixMin(MAX_PARAMETER_SETS, frame->numParameterSets + 1); frame->paramSlot[frame->numParameterSets - 1] = self->timeSlots - 1; + + for (int p = 0; p < frame->numParameterSets; p++) { + if (frame->paramSlot[p] > self->timeSlots - 1) { + frame->paramSlot[p] = self->timeSlots - 1; + err = MPS_PARSE_ERROR; + } + } + if (err != MPS_OK) { + goto bail; + } } bail: |