mirror of
https://github.com/xiph/opus.git
synced 2025-05-15 16:08:30 +00:00
opus_decoder_fuzzer: limit the number of decodes to avoid timeout
This commit is contained in:
parent
b83dd52868
commit
6bae366f9f
1 changed files with 4 additions and 1 deletions
|
@ -40,6 +40,8 @@
|
||||||
/* 4 bytes: packet length, 4 bytes: encoder final range */
|
/* 4 bytes: packet length, 4 bytes: encoder final range */
|
||||||
#define SETUP_BYTE_COUNT 8
|
#define SETUP_BYTE_COUNT 8
|
||||||
|
|
||||||
|
#define MAX_DECODES 12
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int fs;
|
int fs;
|
||||||
int channels;
|
int channels;
|
||||||
|
@ -66,6 +68,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||||
TocInfo toc;
|
TocInfo toc;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int err = OPUS_OK;
|
int err = OPUS_OK;
|
||||||
|
int num_decodes = 0;
|
||||||
|
|
||||||
/* Not enough data to setup the decoder (+1 for the ToC) */
|
/* Not enough data to setup the decoder (+1 for the ToC) */
|
||||||
if (size < SETUP_BYTE_COUNT + 1) {
|
if (size < SETUP_BYTE_COUNT + 1) {
|
||||||
|
@ -82,7 +85,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||||
|
|
||||||
pcm = (opus_int16*) malloc(sizeof(*pcm) * MAX_FRAME_SAMP * toc.channels);
|
pcm = (opus_int16*) malloc(sizeof(*pcm) * MAX_FRAME_SAMP * toc.channels);
|
||||||
|
|
||||||
while (i + SETUP_BYTE_COUNT < size) {
|
while (i + SETUP_BYTE_COUNT < size && num_decodes++ < MAX_DECODES) {
|
||||||
int len, fec;
|
int len, fec;
|
||||||
|
|
||||||
len = (opus_uint32) data[i ] << 24 |
|
len = (opus_uint32) data[i ] << 24 |
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue