Commit graph

536 commits

Author SHA1 Message Date
TreeHugger Robot
fc905bc6c3 Merge "Fix for stack buffer overflow in ixheaacd_esbr_chirp_fac_calc." 2019-07-08 18:46:41 +00:00
Rajat Kumar
f6b2d77787 Fixes to incorporate latest conformance criteria
Bug:128648229
Test: atest android.media.cts.DecoderTestXheAac
Test: atest android.media.cts.DecoderTestAacDrc
Change-Id: Ic85bacc660c91096e29cd0cbe24323f4a6109c9a
2019-07-03 10:23:20 -07:00
Rajat Kumar
e34ec6918e Fix for stack buffer overflow in ixheaacd_esbr_chirp_fac_calc.
We found that error return was not being handled properly
in ixheaacd_applysbr() function. This led to a wrong value
being propagated which led to a stack buffer overflow.

Also, a flag for checking if any previous frames encountered
a fatal error has been added to ensure that further processing
of frames doesn't happen after encountering a fatal error.

Bug:130219994
Bug:131307285
Test: vendor
Change-Id: If7b3887afcb375dda292082438f61d156027b60e
2019-06-11 15:29:57 -07:00
Sushanth Patil
08225b931e Fix for memcpy param overlap in ixheaacd_applysbr
In ixheaacd_applysbr(), down_samp_sbr was coming as 1 during init
and 0 during execute, which lead to a down sampled(smaller array)
being intialised but memcpy at line 633 in ixheaacd_sbrdecoder.c
tried to do it for a non down sampled array(larger array) causing
a memcpy param overlap.
As a fix a check has been added in ixheaacd_dec_execute() for
down_spamp_sbr flag which should be 0 for AOT 42(USAC).

Bug:130273553
Bug:131278612
Test: vendor
Change-Id: Ide3af2da26fdceb8fa51b2e976ff96a0dba9b7a5
2019-06-11 15:19:11 -07:00
TreeHugger Robot
6106e348c0 Merge "Fix for sub-oveflow in ixheaacd_tns_ar_filter_fixed_armv8" 2019-05-17 23:43:39 +00:00
TreeHugger Robot
360cf0550b Merge "Fix to remove unused codes from MPEG-D DRC." 2019-05-16 04:30:25 +00:00
Rajat Kumar
7bee3616b8 Fix to remove unused codes from MPEG-D DRC.
MPEG-D DRC integrated with USAC does work only in
time domain.
Hence removed the above related code in this patch.

Bug:130262151
Test: atest android.media.cts.DecoderTestXheAac
Test: atest android.media.cts.DecoderTestAacDrc

Change-Id: Ib51ef29fb7a1fe7a09718d48e2c9e7cda268ae7b
2019-05-15 15:18:34 -07:00
TreeHugger Robot
4d19cb5a15 Merge "Adding bound check for lpc array in tns processing" 2019-05-14 17:05:57 +00:00
TreeHugger Robot
0d1ebe61ce Merge "Integer overflow fix in mps poly filter" 2019-05-14 14:04:33 +00:00
TreeHugger Robot
79113776a2 Merge "Fix for int-overflows in ixheaacd_avq_dec.c file" 2019-05-13 14:11:27 +00:00
TreeHugger Robot
6855e3f84a Merge "Fix for integer-overflows in ixheaacd_qmf_dec_armv8.c file" 2019-05-13 14:10:07 +00:00
TreeHugger Robot
330d1f1ddc Merge "Fix for Parametric stereo stream playback issue" 2019-05-13 14:03:58 +00:00
TreeHugger Robot
89de8ea934 Merge "Fix for addition/subtraction overflows in fft32x32_ld_dec func()." 2019-05-11 00:31:45 +00:00
TreeHugger Robot
61f4b0f072 Merge "Fix for heap buffer overflow in read_bits_buf" 2019-05-11 00:30:55 +00:00
Sushanth Patil
1df4b16f92 Fix for sub-oveflow in ixheaacd_tns_ar_filter_fixed_armv8
Added check for subtraction overflow.

Bug:129251257
Test: vendor
Change-Id: I318705f48d0fd0ef2ca14c258cbf6b9113852da1
2019-05-06 16:33:47 -07:00
Ramesh Katuri
d0b45123a9 Adding bound check for lpc array in tns processing
Bug:130393179
Test: vendor
Change-Id: I4772a9af7036dc4c7b02f059b3de62fd9d9ad910
2019-05-06 16:27:26 -07:00
Ramesh Katuri
b1ad73e389 Integer overflow fix in mps poly filter
use saturating version of negation for a particular calculation

Bug:130393181
Test: vendor
Change-Id: I6f1c94a52b6b7dbbe79c057fcceb925d0b779786
2019-05-06 16:21:46 -07:00
Rajat Kumar
33d66caa64 Fix to add missing PUSH-POP of D registers in armv7 assemblies.
Added missing push and pop instructions of D8-D15 neon registers
for armv7 assembly functions.

Bug:121357211
Test: vendor app
Change-Id: I669df71eff05fd0c693f2bf569a66ed781a02f20
2019-05-06 15:11:54 -07:00
Sushanth Patil
9ddcaf6623 Fix for int-overflows in ixheaacd_avq_dec.c file
Added saturation checks for integer overflows.

Bug: 129251709
Test: vendor
Change-Id: Ia087af25ce6854ebfbaa4be7f59bb449f193a619
2019-05-04 14:57:26 -07:00
Rajat Kumar
8c7b964c74 Fix for integer-overflows in ixheaacd_qmf_dec_armv8.c file
Added saturation checks throughout the file.

Bug: 129252271
Test: poc (xaacdec64)
Change-Id: I77ed53c5d36f6d5f633da30d53bf71219b9fa4be
2019-05-04 14:07:32 -07:00
Sushanth Patil
ed03681d52 Fix for heap buffer overflow in read_bits_buf
In ixheaacd_arith_decode(), ixheaacd_read_bidireciton()
was being called even when bitbuffer was exhausted which
in turn made cnt_bits and bit_pos more and more negative
which overflowed eventually and resulted in heap buffer
overlow. We also observed the variable "cumulative"
value to be zero even after reaching the end of bitbuffer
and this in turn lead to an infinte for loop
"for (lev = esc_nb = 0;;)" in ixheaacd_arth_decoding_level2()
as "cumulative" value would not be updated after reaching
end of bitbuffer.
As a fix , we return whenever "cumulative" value remains
zero even after bitbuffer is exhausted.

And this patch adds a check for (cnt_bits < 0) in
ixheaacd_bitbuffer.c and removes bitbuffer wrap around
in ixheaacd_read_bidirection().

Added cnt_bits > 25 check in ixheaacd_read_bits_buf() &
ixheaacd_show_bits_buf() as these functions cannot handle
read of more than 25 bits at a time.

Bug:123976878
Test: poc
Change-Id: I4ec729fddb859ddd0add0045532e20fbfffd2e5c
2019-05-02 12:02:08 -07:00
Ramesh Katuri
3f43c072c4 Fix for Parametric stereo stream playback issue
The stream used for this issue had parametric stereo switched off
for first few frames and decoder is configured to give mono output.
After few frames even though codec has detected PS content in the stream
channel configuration is not getting updated which caused breaks in
audio.

As a fix we are checking future possibility on PS content in the stream
based on AOT and using that information to update output channel count.

Bug:114329895
Test: vendor
Change-Id: I0faa47ff234b8651e2c42f9e4423fe9bf1c3908c
2019-05-02 11:51:42 -07:00
Rajat Kumar
a42df362fa Fix for addition/subtraction overflows in fft32x32_ld_dec func().
Added saturation checks to avoid addition/subtraction overflow.

Bug:124023688
Test: poc
Change-Id: I1227c82b4f7d285bb476154c7e941a999d034d0f
2019-04-11 11:15:30 -07:00
Sushanth Patil
9c27c43dd7 Fix for Segmentation fault in ixheaacd_reset_acelp_data_fix func.
In ixheaacd_dec_main(),ixheaacd_config() returned from ixheaacd_read_bit_buf()
due to setjmp/longjmp changes which resulted in ixheeacd_decode_create() not
being called which is needed to initialize many pointers which in turn resulted in
Segementation fault.

As a fix, added a flag decode_create_done which will tell the status of
ixheeacd_decode_create() func and ixheaacd_usac_process will be called
based on this flag.

Bug: 123908264
Bug: 123908335
Bug: 123975056
Test: poc
Change-Id: I929f70650ddc963c11e5d674b12abc0100e1b076
2019-04-10 12:56:52 -07:00
TreeHugger Robot
522ad1b4c4 Merge "Fix for integer overflows in tns filter related functions" into qt-dev 2019-04-05 00:25:46 +00:00
TreeHugger Robot
89a5398907 Merge "Fix for integer overflow in ixheaacd_fft_15_ld dec function" into qt-dev 2019-04-05 00:23:34 +00:00
TreeHugger Robot
e1aee2fa4a Merge "Fix for array out of bound access in aac decoding" into qt-dev 2019-04-05 00:19:56 +00:00
TreeHugger Robot
4647ea4f06 Merge "Fixes for integer overflows in ixheaacd_qmf_dec_generic.c file" into qt-dev 2019-04-05 00:09:26 +00:00
Rajat Kumar
616a220485 Fix for integer overflows in tns filter related functions
Added saturation checks, wherever overflow can occur
throughout ixheaacd_aac_tns.c file.

Bug:126975097
Bug:126983239
Test: poc
Change-Id: Ic60116510c1a2d327adb34c4b627e01044a3385e
2019-04-04 21:17:02 +00:00
Rajat Kumar
39f1b58f2b Fix for integer overflow in ixheaacd_fft_15_ld dec function
Added saturation checks throughout the function.

Bug:126984878
Test: poc
Change-Id: I687cb0f523867b5c6a013b6720a441e33be8b5b2
2019-04-04 21:16:45 +00:00
Rajat Kumar
416ea171ed Fix for array out of bound access in aac decoding
pstr_drc_dec->is_longblock once initialized was never used,
so this section of code is redundant. Hence removed.

Bug:124022176
Test: vendor+poc
Change-Id: I30f785764a7031b546f01803720dbfccba75d023
2019-04-04 21:16:35 +00:00
Rajat Kumar
5d005e30a2 Fixes for integer overflows in ixheaacd_qmf_dec_generic.c file
Added addition and subtraction saturation checks.

Bug:124023982
Test: poc
Change-Id: I7b21c806c8978242bf74c2a65d3cd1fe9acb1d6a
2019-04-04 21:16:17 +00:00
Rajat Kumar
d1dc25ad95 Fix for out of bound access in lpd decode function
Code written under the condition
if (mod[0] == 0 && len_subfrm != LEN_FRAME) are redundant.
We were filling garbage at st->fd_synth[ORDER - len_subfrm + i]
and doing some calculations but never using it.

So removed the redundant part here.

Bug:122728400
Test: vendor + poc
Change-Id: If55eeec1e21b2874c1cfd8eee8c71dc7da962a72
2019-04-04 21:15:57 +00:00
Ray Essick
360bd4fd75 Merge changes from topic "b124323156"
* changes:
  Initialize all allocated memory blocks to zero
  Update cfi blacklist to include few more assembly functions
  LDR changed to MOV instruction in armv8 and armv7 assemblies
2019-04-02 22:13:05 +00:00
TreeHugger Robot
0efd8c81e2 Merge "Fix for array out of bound in ixheaacd_dec_execute" 2019-03-29 00:30:32 +00:00
Rajat Kumar
7b43401d30 Initialize all allocated memory blocks to zero
Bug: 124323156
Test: poc
Change-Id: I69b035d1b6bab81244dde319d4fceb3f42837380
2019-03-27 15:49:39 -07:00
Rajat Kumar
91227e2f61 LDR changed to MOV instruction in armv8 and armv7 assemblies
Removes memory accesses to constant values and replaces
them with mov instructions. This would allow this library
to be compatible with execute-only memory layouts.

Bug: 124323156
Test: poc
Change-Id: I801d4cfff953b9d13b80a97be04a3223117df29f
2019-03-27 15:49:19 -07:00
Rajat Kumar
b338a5c649 Fix for array and integer overflow in drc related functions
Added init done check before execute calls to avoid access of
uninitialized data.

Bug:126652455
Test: poc
Change-Id: Ia33d05658d3830f27dfe607c4f4e96233c272e20
2019-03-27 13:44:19 -07:00
TreeHugger Robot
708b691836 Merge "Fix for addition overflow in voronoi_idx_dec" 2019-03-22 14:52:18 +00:00
Ramesh Katuri
d02fcccd4b Fix for addition overflow in voronoi_idx_dec
Added saturation check in ixheaacd_avq_dec.c file.

Bug:126154841
Test: poc
Change-Id: I8fe1e1b194bdde2854bb3b41c2b8b9bf00afc125
2019-03-21 15:28:09 -07:00
Sushanth Patil
8f97584285 Fix for array out of bound in ixheaacd_dec_execute
Decode init fatal error was not handled at upper level in
ixheaacd_common_lpfuncs.c. Hence, corresponding check has
been added.

Bug:126154782
Test: poc
Change-Id: I5332f5fd0260110f426cfe176e6d64f5989cfb08
2019-03-21 15:21:51 -07:00
TreeHugger Robot
3e37d2f231 Merge "Fix for xaacdec running in infinite loop in hbe_repl_spec func." 2019-03-21 00:47:28 +00:00
Rajat Kumar
f931772f4a Fix for xaacdec running in infinite loop in hbe_repl_spec func.
When ixheaacd_num_bands = 0, "while (patch_bands > 0)" goes
into infinite looping since patch_bands remains unchanged in the
loop.
So as a fix added the corresponding check to break the loop when
ixheaacd_num_bands becomes 0.

Bug: 123974524
Test: poc
Change-Id: Ie6364ad0b3cfd92df1a2664ec5850408aecce21b
2019-03-19 09:15:22 -07:00
TreeHugger Robot
68e7ffa52a Merge "Fixes for integer overflows in ixheaacd_fft.c file." 2019-03-19 04:48:30 +00:00
Ramesh Katuri
b06bd79f1b Fix for Heap buffer overflow in read bit buffer for latm stream
for latm stream other_data_length is read from the bit stream.

For this stream this value is becoming very high, which is beyond
bit buffer boundaries.

As a fix if the value is more than bit buffer size we are returning
fatal error.

Bug:124210105
Test: poc
Change-Id: Id93e5dbdbbd4aab428401da0ea72422d192bcdec
2019-03-16 16:02:47 -07:00
Rajat Kumar
976e950918 Fixes for integer overflows in ixheaacd_fft.c file.
Added addition and subtraction saturation checks
throughout ixheaacd_fft.c file.

Bug:124022940
Bug:124023732
Bug:124024270
Test: poc
Change-Id: Ie9fc7b1b301df968c7ba0b41b4b5532d2a957abd
2019-03-09 08:17:00 -08:00
TreeHugger Robot
eaf820d8f7 Merge "Fix for array out of bound access in multichannel.c file" 2019-03-09 04:32:25 +00:00
TreeHugger Robot
4e1da7999e Merge "Fix integer overflows in ixheaacd_harm_idx_zerotwo and ixheaacd_harm_idx_onethree" 2019-03-08 19:31:46 +00:00
TreeHugger Robot
995c9b52c9 Merge "Fix for OOB write in ixheaacd_real_synth_filt." 2019-03-08 15:01:34 +00:00
TreeHugger Robot
7b0b01f14d Merge "Fix for heap-buffer-overflow in ixheaacd_aac_showbits_32" 2019-03-08 14:57:21 +00:00