Commit graph

22 commits

Author SHA1 Message Date
Shashank Pathmudi
2624ae15b4 Fix for Heap-buffer-overflow WRITE 8 in ixheaacd_init_sbr
These changes handle the Heap-buffer-overflow WRITE 8 runtime error reported
due to unsupported channel configuration for USAC.

Bug: ossFuzz:64960
Test: poc in bug
2023-12-18 16:20:32 +05:30
Nikhil Bhavikatti
ae104f0711 Restructuring of Decoder 2023-05-15 17:23:01 +05:30
Shashank Pathmudi
6ce7dc469c Error concealment support for xHEAAC decoder 2023-02-28 11:54:07 +05:30
Shashank Pathmudi
b9e8ada604 MPS support for xHEAAC decoder 2023-01-23 14:46:59 +05:30
Nikhil Bhavikatti
e1bb9ba2b1 Fix for OOB issue in MPS process call 2022-10-10 10:19:03 +05:30
Sowmya Sree Reddy G
270720de5e ELDv2 support for EXHEAAC decoder 2022-10-10 10:15:43 +05:30
Rajat Kumar
24e72af590 Fix for missing bound check in MPS bit parsing
Value of bs_decorr_config = 3 is not supported.
A check has been added for the same.

Bug: 136063852
Test: manual review

Change-Id: Idd2309e9d0f6d346fb5c9227bed1124d622e6f7e
2020-03-05 16:35:16 -08:00
TreeHugger Robot
7c44e0aac5 Merge "Adding bound checks in USAC config bit stream parsing" 2019-08-27 20:13:53 +00:00
Ramesh Katuri
ce7b4e93ce Fix for correcting #include delimiters
This CL contains changes to make #include delimiters stying
consistent. For all system files inclusion we will use <> and
all user files we will use ""

Bug: 125443111
Test: compilation
Change-Id: Ie5f609b9bef8357877affb7f48d46df7c387d142
2019-08-26 13:35:44 -07:00
TreeHugger Robot
07a470cab1 Merge "Fix for negative-size-param for memcpy in ixheaacd_sbr_env_calc" 2019-07-18 08:57:36 +00:00
Sushanth Patil
70ac75945f Fix for negative-size-param for memcpy in ixheaacd_sbr_env_calc
stere_config_index was not intialised to 0 whenever
a codec re-configure happened which lead to current
frame being processed with stereo_config_index of
frame before codec re-configure which lead to a
mismatch of usac_ele_type[] & stere_config_index
in this case which lead to setting mps_sbr_flag even
in its absence which further went on to crash in
memcpy for ch = 2 which was not set for current
usac_ele_type[].

So, stereo_config_index is cleared in init_config
for USAC_SCE & USAC_LFE cases where it is not used.

Bug: 136975538
Test: poc in bug

Change-Id: I7b976f9512ce3d940a43e94309e61ec780e096cc
2019-07-17 16:21:00 -07:00
Rajat Kumar
93ade1f683 Fix to define all tables as const in libxaac
libxaac had few tables which were not declared as constants.
Added const and did corresponding changes to build and
execute.

Bug:128433649
Test: Manual Review

Change-Id: I1babf22a45fbd595c5a9c67804ecdc0317ebb96c
2019-07-17 12:24:16 -07:00
Ramesh Katuri
5775ff7635 Adding bound checks in USAC config bit stream parsing
These were added based on code review

Bug:130111727
Bug:131212731

Test: poc in bug

Change-Id: Ibe55885956e12ffacc54d809f67c466e20f0eb4d
2019-07-16 15:21:25 -07:00
Tripti Tiwari
0c4b1b73fc Fix for integer overflow in ixheaacd_decode_init()
In this POC sampling rate is user defined value, which is
very high. This is causing integer overflow during multiplication.

As fix bound check is added for sampling rate

Bug:120251340
Test: vendor + poc
Change-Id: Ia11a261ec108638f721c08d72b1353bf429edc03
2019-01-08 11:05:48 -08:00
TreeHugger Robot
b58b82de38 Merge "Fix for oobw in ixheaacd_decode_init()" 2019-01-07 19:30:14 +00:00
Ramesh Katuri
97fb283165 Fix for oobw in ixheaacd_decode_init()
seed_value[] is an array of size MAX_NUM_CHANNELS which is 6.
seed_value is accessed using number of channels in the stream.
For the given input number of channels are more than six,which
is causing OOB write.

As fix, check has been added based on number of channels.As
we support only stereo in USAC, we are returning error if
stream contains more than 2 channels.

Bug:119118558
Test: vendor
Change-Id: I3187b0eae0f802ddb82cdc07a9eec1b5910607b4
2018-11-29 16:30:14 -08:00
Ramesh Katuri
9a89ef5bbc Fix for crash in ixheaacd_decode_init
Sampling frequency of the input stream is read from the bit stream.
As per spec there are 30 standard sampling frequencies.Sampling frequency
index which is a 5 bit filed read from the bit stream. If the input
stream has sampling frequency other than this 30 then sampling index
from the bit stream will be 0x1f. If the sampling frequency index is 0x1f
then sampling frequency is directly read from the bit stream (24 bit).
Even though sampling frequency can be any value between ( 0 and 2^24-1)
as per usac specification this free sampling frequency has to be clamped.
We implemented that clamping as part of this CL.

Bug:117047049
Test: poc + vendor
Change-Id: I5793139521563e5efd03c8ed9cf5aeda0792bef2
2018-11-14 11:55:32 -08:00
Ramesh Katuri
4878ef09c7 Fix for heap buffer overflow in xaac decoder init
Number of elements allowed in usac profile are 16. Erroneous input
stream in this use case has 63336 elements.We have an error
check for this max number of elements while parsing the decoder
configuration.This returned error code was not handled properly.

Maximum 16 config elements can be used while codec creation,because
of number of elements values is coming as 63336, during
creation time OOB read is happening.

Bug:112766520
Bug:112857468
Bug:112913145
Bug:112918261
Test: re-ran poc
Change-Id: If9413546371f72a6896f5c7e7d22a314e484cf76
2018-09-05 14:50:05 -07:00
Ramesh Katuri
b3226ce6f8 Formatting changes
Formatting .c and .h files using clang-format
Formatting .s files

Bug: 80493357
Test: compare object sizes
Change-Id: I38296083c9d2d566a6a2564db2e391e4b2bd43a9
2018-06-07 16:52:19 -07:00
Harish Mahendrakar
8eb646f89b Collected Cleanups from Ittiam
Test: CTS android.media.cts.DecoderTest{AacDrc,XheAac}

Added __ARM_NEON__ check to generic function selector

Bug: 80432407
Change-Id: I66c7879fda1369da88ccaea5f8792ea54657cdaf

Added support to build for mips

Bug: 80432286
Change-Id: I908029bbaddd3c1fbc39be1192926b56d981576e

Add optimized versions for qmf_dec for armv7 and armv8

Separating common functions and platform specific functions
in ixheaacd_qmf_dec.c. Platform specific functions are moved
to qmf_dec in armv7, armv8 and generic folder.

Bug: 80431870
Change-Id: I860cb79a1870e228d2108b7915418e1c003cefc5

Fixes for crashes reported by Fuzzer tool

Bug: 109697676
Change-Id: I862fc054b99ee9d427d20596bc8d2e85522a7188
2018-06-05 13:04:22 -07:00
Ray Essick
4908247643 Sanitization fixes from new CTS tests
Updates from vendor to remedy issues exposed by new CTS tests

Bug: 77287124
Test: CTS DecoderTest, DecoderTest{AacDrc,XheAac}

@ Sanitizer fixes in libxaac

Fixes few integer overflow sanitizer errors
Progagate few errors
ENABLE_DRC macro is removed
AMMENDMENT1 macro is removed

Change-Id: Ic61163dfd6318bd4a00ed45e1295c819cb0f637b

@ Add support for audio pre-roll and DRC effect type

Also includes the following
MPEG-D DRC parameters related changes
USAC config switch changes
SBR config switch changes

Bug: 80133175
Change-Id: I0ab25641768cf523b66f7b0fcb4137429c1c4a77

@ Fixed trailing spaces

Change-Id: I32de0c9d3f7237e1fbf8dfef1cac485ef8458173

@ Replaced tabs

Change-Id: Ic741ee13d7b978b37edc27d087903caaa40b8d90
2018-05-25 11:35:52 -07:00
Ray Essick
51aa06e124 Bring xHE-AAC into pi-dev branch
bring the multi-commit integration from master to pi-dev

libxaac multi-arch cleanup

Change-Id: Ibcefa14f439e75f48a54955c9abf1a06c418e41e
Change-Id: Ia7a9b1e4de0add847c136f6f545b81dc8087521d
Change-Id: I12c3f8414dc9971017de223e88f292f8982a5c9b

Fix dependency error in Android.bp
Change-Id: Ic54f688736b3f2a70172676e4cee22aea4cbd705

Localized Android.bp
Change-Id: I68c4fc24fca279104c8ce2129fd4a3ed8d116b9b

Import xHE-AAC decoder from Ittiam
Change-Id: I3c8d124033f967b29d6e384cce5c843ee17a7bb1

Bug: 77287124
Test: build, cts DecoderTest
2018-05-17 14:36:48 -07:00