Browse Source

avcodec/webp: Return directly when creating Huff table fails

Neither the auxiliary VLC table nor the code_lengths array need to be
freed if creating the auxiliary VLC table fails.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.4
Andreas Rheinhardt 5 years ago
parent
commit
548f1a3fa4
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      libavcodec/webp.c

+ 2
- 2
libavcodec/webp.c View File

@@ -324,7 +324,7 @@ static int read_huffman_code_normal(WebPContext *s, HuffReader *hc,
int alphabet_size) int alphabet_size)
{ {
HuffReader code_len_hc = { { 0 }, 0, 0, { 0 } }; HuffReader code_len_hc = { { 0 }, 0, 0, { 0 } };
uint8_t *code_lengths = NULL;
uint8_t *code_lengths;
uint8_t code_length_code_lengths[NUM_CODE_LENGTH_CODES] = { 0 }; uint8_t code_length_code_lengths[NUM_CODE_LENGTH_CODES] = { 0 };
int i, symbol, max_symbol, prev_code_len, ret; int i, symbol, max_symbol, prev_code_len, ret;
int num_codes = 4 + get_bits(&s->gb, 4); int num_codes = 4 + get_bits(&s->gb, 4);
@@ -338,7 +338,7 @@ static int read_huffman_code_normal(WebPContext *s, HuffReader *hc,
ret = huff_reader_build_canonical(&code_len_hc, code_length_code_lengths, ret = huff_reader_build_canonical(&code_len_hc, code_length_code_lengths,
NUM_CODE_LENGTH_CODES); NUM_CODE_LENGTH_CODES);
if (ret < 0) if (ret < 0)
goto finish;
return ret;


code_lengths = av_mallocz(alphabet_size); code_lengths = av_mallocz(alphabet_size);
if (!code_lengths) { if (!code_lengths) {


Loading…
Cancel
Save