1
0
mirror of https://github.com/mstorsjo/fdk-aac.git synced 2025-03-13 06:10:03 +01:00

548 Commits

Author SHA1 Message Date
Jean-Michel Trivi
2bebb8fb65 DO NOT MERGE Prevent out of bound memory access in GetInvInt am: d0e8397b7b
am: 7462464e43

Change-Id: I064298bc197e53e6f5a6ce1872cb77c9444d8dee
2017-11-03 19:13:34 +00:00
Jean-Michel Trivi
e1d517a909 Merge "DO NOT MERGE Prevent out of bound memory access in GetInvInt" into lmp-mr1-dev
am: 5565e7791f  -s ours

Change-Id: I30f8ee01f8a715cabf8edb10edf15bad032f5001
2017-11-03 19:10:33 +00:00
Jean-Michel Trivi
5285345743 DO NOT MERGE Prevent out of bound memory access in GetInvInt
am: 51f38b3a6d

Change-Id: I01d4479fd2194e85b77b11d678facb7f581ff517
2017-11-03 19:10:33 +00:00
Jean-Michel Trivi
fca1027937 Fix out of bound memory access in lppTransposer am: 6d3dd40e20
am: 2a7b438754

Change-Id: If16bd906722b4a639be890fcc98bd21db253f404
2017-11-03 19:10:25 +00:00
Jean-Michel Trivi
f6100335b8 DO NOT MERGE Prevent out of bound memory access in GetInvInt
am: 9fb4261c43

Change-Id: If0378d7935b9f651f7096eee8916d4f83889a629
2017-11-03 19:10:04 +00:00
Jean-Michel Trivi
e64c501013 DO NOT MERGE Prevent out of bound memory access in GetInvInt
am: 5ce724f1dd

Change-Id: I3b88b500ce26106a277ce6604c6d513bac4a7085
2017-11-03 19:10:04 +00:00
Jean-Michel Trivi
6fac7101c6 DO NOT MERGE Prevent out of bound memory access in GetInvInt
am: 070e7b81c0

Change-Id: Ibcddd5c0e53aaae0d26e1c33c6e42bc7268cf6a1
2017-11-03 19:10:04 +00:00
Jean-Michel Trivi
7462464e43 DO NOT MERGE Prevent out of bound memory access in GetInvInt
am: d0e8397b7b

Change-Id: If35860a327395c578e6f02b3706db0fd041e719e
2017-11-03 19:10:04 +00:00
Jean-Michel Trivi
2a7b438754 Fix out of bound memory access in lppTransposer
am: 6d3dd40e20

Change-Id: I4a2b70c82e6bc42b3a0ec00efeb100fe6971a62c
2017-11-03 19:07:04 +00:00
TreeHugger Robot
5565e7791f Merge "DO NOT MERGE Prevent out of bound memory access in GetInvInt" into lmp-mr1-dev 2017-11-03 19:05:37 +00:00
Jean-Michel Trivi
9fb4261c43 DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: I92d4a14519f45d5a329d7f69f21f2aef0a8c6daa
2017-11-02 19:18:56 +00:00
Jean-Michel Trivi
5ce724f1dd DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: I92d4a14519f45d5a329d7f69f21f2aef0a8c6daa
2017-11-02 18:55:37 +00:00
Jean-Michel Trivi
0d54662fe8 DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: I92d4a14519f45d5a329d7f69f21f2aef0a8c6daa
2017-11-02 18:54:15 +00:00
Jean-Michel Trivi
3b6a14a1e0 DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: I92d4a14519f45d5a329d7f69f21f2aef0a8c6daa
2017-11-02 18:52:41 +00:00
Jean-Michel Trivi
51f38b3a6d DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: I92d4a14519f45d5a329d7f69f21f2aef0a8c6daa
2017-11-02 16:25:34 +00:00
Jean-Michel Trivi
6d3dd40e20 Fix out of bound memory access in lppTransposer
In TRANSPOSER_SETTINGS, initialize the whole bwBorders array to a
  reasonable value to guarantee correct termination in while loop
  in lppTransposer function. This fixes the reported bug.
For completeness:
  - clear the whole bwIndex array instead of noOfPatches entries only.
  - abort criterion in while loop to prevent potential
    infinite loop, and limit bwIndex[patch] to a valid range.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65280786

Change-Id: I16ed2e1c0f1601926239a652ca20a91284151843
2017-10-31 21:40:14 +00:00
Jean-Michel Trivi
070e7b81c0 DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: Iff889601828f95b82d9291075f3909922ef533ef
2017-10-30 22:46:18 +00:00
Jean-Michel Trivi
76c4625fe3 DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048

Change-Id: Id1f1582bc5afc76e3e90128d92034a5899a9b51e
2017-10-30 22:45:05 +00:00
Jean-Michel Trivi
d0e8397b7b DO NOT MERGE Prevent out of bound memory access in GetInvInt
In GetInvInt(int) function, malicious content can access memory
 outside of the invCount array. Always bound access to valid
 indices.

Test: see bug for malicious content, decoded with "stagefright -s -a"
Bug: 65025048
Change-Id: Iff889601828f95b82d9291075f3909922ef533ef
2017-10-30 15:20:44 -07:00
Martin Storsjo
1e3515e03e Fix an assertion failure (avoid division by zero) when encoding a particular input 2017-10-30 23:06:44 +02:00
Martin Storsjo
cf697df5ad Avoid reading out of bounds due to negative aaIccIndexMapped
Fixes: 3452/clusterfuzz-testcase-4898065225875456

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-10-20 16:33:25 +03:00
Martin Storsjo
c366b3db8f Add tighter sanity checks in CBlock_GetEscape
We can't read 31 bits of value here, since that would place the
topmost bit in the sign bit.

Fixes: 3480/clusterfuzz-testcase-4573445423628288

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-10-20 16:33:25 +03:00
Chih-Hung Hsieh
15759ceb7b Merge "Use -Werror in external/aac" am: f38aee2252 am: 82440fab16 am: 5a1868a64f
am: 858c2a7c6e

Change-Id: I34b525da95c712354d0e4c4d72f7d7ef89ff2ba9
2017-10-07 00:55:09 +00:00
Chih-Hung Hsieh
858c2a7c6e Merge "Use -Werror in external/aac" am: f38aee2252 am: 82440fab16
am: 5a1868a64f

Change-Id: I4beb4b05f00077e1c7cbcc5ae197001c6251af09
2017-10-07 00:50:14 +00:00
Chih-Hung Hsieh
5a1868a64f Merge "Use -Werror in external/aac" am: f38aee2252
am: 82440fab16

Change-Id: I3cee76ab540b54b4ef6d6bdb891fc53fd0ec562d
2017-10-07 00:47:44 +00:00
Chih-Hung Hsieh
82440fab16 Merge "Use -Werror in external/aac"
am: f38aee2252

Change-Id: I65c18c6eb45de16da43e862068929e9a9695caf7
2017-10-07 00:45:22 +00:00
Treehugger Robot
f38aee2252 Merge "Use -Werror in external/aac" 2017-10-07 00:39:23 +00:00
Chih-Hung Hsieh
3e8a17c1c1 Use -Werror in external/aac
Bug: 66996870
Test: build with WITH_TIDY=1
Exempt-From-Owner-Approval: Colin +2 should be the owner approval
Change-Id: I167f73ee9dc5e977fd6976f48732ae1e1fe13c8b
2017-10-06 21:52:25 +00:00
Doug Benedict
e2e35b8273 Make sure there are enough bits when reading ADTS header. 2017-09-20 14:30:42 -07:00
Martin Storsjo
a3d1168943 Adjust the fix for infinite loops with a drained ADTS stream
This should have less risk of causing other issues.
2017-08-18 22:38:09 +03:00
Martin Storsjo
963b189156 Enhance TNS tuning for 8 kHz audio sampling rate
This tuning has been suggested by Fraunhofer, fixing overflows
in encoding certain sequences.
2017-08-18 22:36:48 +03:00
Martin Storsjo
1244b257ee Always feed more input data when possible for ADTS
This fixes cases where an ADTS header could set numberOfRawDataBlocks
to a number larger than 1, which would lead to transportDec_FillData
not feeding any more data, even though the input buffer was depleted.

Fixes: 3014/clusterfuzz-testcase-5425740193464320

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-08-15 23:12:51 +03:00
Martin Storsjo
393a86c0db Check that pSettings is initialized
Fixes: 2872/clusterfuzz-testcminimized-4529959869612032

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-08-15 23:12:51 +03:00
Jiyong Park
b185a1b5ae Make software codecs as VNDK am: a4aa860efb
am: 82b9d6795a

Change-Id: Ib0071dca66a511ab13b358eafd9d951d6249879b
2017-08-10 02:48:42 +00:00
Jiyong Park
82b9d6795a Make software codecs as VNDK
am: a4aa860efb

Change-Id: I662a0675e67bd421b2b3c02391c25cf38f39d84f
2017-08-10 01:18:58 +00:00
Jiyong Park
a4aa860efb Make software codecs as VNDK
Software codecs and their dependencies are marked as VNDK (or just
vendor_available:true for static/header libs).

Bug: 37343418
Test: build the software codecs with BOARD_VNDK_VERSION=current

Change-Id: I9ecedb5a95abc9978ff7ed3538bd2dedec750c7d
2017-08-07 13:12:12 +09:00
Martin Storsjo
ee6d9476a6 Check for heightLayer out of range
Alternatively, the bits read in CProgramConfig_ReadHeightExt could
be checked right there instead.

Fixes: 2802/clusterfuzz-testcase-minimized-6752357788418048

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-08-03 14:22:30 +03:00
Martin Storsjo
52c2660c26 Make sure at least one bit exists before reading further in FDKreadBit
Fixes: 2709/clusterfuzz-testcase-minimized-6160249369133056

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-08-03 14:22:30 +03:00
Martin Storsjo
ecb2ad9a7b Check that all channel mapping entries used are valid
If channel numbers are changed on the fly (in invalid bitstreams),
we can end up with a channel mapping with fewer channels mapped
than we actually try to output.

Ideally, this condition should probably be checked somewhere
closer to where it enters such a state, not when using the
channel mapping though.

Fixes: 2808/clusterfuzz-testcase-minimized-4694952892170240
Fixes: 2275/clusterfuzz-testcase-minimized-6205444085252096

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-08-03 14:22:04 +03:00
Martin Storsjo
af5863a78e Re-fix "Stack-buffer-overflow in FDKmemset"
This probably doesn't fix the root cause, but at least fixes
the issues found in this particular fuzzed sample.

Compared to the previous fix in 39e13c1acbca94f562f9776e1555ced50dd0dfcd,
this doesn't break HE-AACv2 encoding, by allowing the case with
usb==no_channels.

Fixes: 1973/clusterfuzz-testcase-minimized-6319232084082688

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-22 12:32:55 +03:00
Martin Storsjo
a9c8cb2cf6 Revert "Fix "Stack-buffer-overflow in FDKmemset""
This reverts commit 39e13c1acbca94f562f9776e1555ced50dd0dfcd.

This turned out to break HE-AACv2 encoding. Will look for a better
fix for the issue found by the fuzzed sample.

This fixes issue #69.
2017-06-22 11:54:29 +03:00
Martin Storsjo
e7f36eed22 Check that the SBR decoder has been properly initialized
This probably doesn't fix the root cause, but at least fixes
the issues found in this particular fuzzed sample.

Fixes: 1994/clusterfuzz-testcase-minimized-6368089497141248

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:59 +03:00
Martin Storsjo
39e13c1acb Fix "Stack-buffer-overflow in FDKmemset"
This probably doesn't fix the root cause, but at least fixes
the issues found in this particular fuzzed sample.

Fixes: 1973/clusterfuzz-testcase-minimized-6319232084082688

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:59 +03:00
Martin Storsjo
d2fa9750d5 Make sure to end all CRC regions in the right order
This fixes assert failures, when a (corrupt/fuzzed) bitstream
doesn't trigger starting/ending CRCs properly (or when decoding
is aborted halfway when an error is encountered). Skipping ending
a CRC region doesn't trigger an assert failure, but when a later
CRC region is started and ended, an assert fails when the end
doesn't match the expected CRC region.

Fixes: 1928/clusterfuzz-testcase-minimized-6480505958563840

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:43 +03:00
Martin Storsjo
21cb19455c Don't try to read a negative number of bits
Fixes: 1919/clusterfuzz-testcase-minimized-5021082513833984

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:43 +03:00
Martin Storsjo
4c4da0e39a Avoid infinite loops in block decoding
Fixes: 1921/clusterfuzz-testcase-minimized-5480510065213440

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2017-06-12 23:44:43 +03:00
Chih-Hung Hsieh
afe3b88936 Merge "Add OWNERS in external/aac" am: db59691026 am: 6f8a59ff40 am: e10e3d33cf
am: 32b8bd3dc9

Change-Id: Icbfbce61951a55c3cfa106bdf0bb7f84da2ca453
2017-06-05 19:47:38 +00:00
Chih-Hung Hsieh
32b8bd3dc9 Merge "Add OWNERS in external/aac" am: db59691026 am: 6f8a59ff40
am: e10e3d33cf

Change-Id: I3b51a11cc119ebc35aab051c21133a1476db5a0a
2017-06-05 19:40:31 +00:00
Chih-Hung Hsieh
e10e3d33cf Merge "Add OWNERS in external/aac" am: db59691026
am: 6f8a59ff40

Change-Id: I236f2028ad5ae6e14ee0655456d4d42b785bdc45
2017-06-05 19:35:00 +00:00
Chih-Hung Hsieh
6f8a59ff40 Merge "Add OWNERS in external/aac"
am: db59691026

Change-Id: Id365d26e05abceec99ddac2e727483d4b294d63d
2017-06-05 19:30:30 +00:00