wma: Remove pointless/incorrect sanity checks.
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 11 Jun 2017 13:59:17 +0000 (15:59 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Thu, 6 Jul 2017 19:00:36 +0000 (21:00 +0200)
In wma_decode_superframe() we check the size of the input buffer twice.
Both checks are redundant because the input queue size of the wmadec
filter node already makes sure we never pass a smaller value. The
second check is in fact wrong, because pwd->ahi.packet_size -
WMA_FRAME_SKIP would be the correct limit to check.

wmadec_filter.c

index 6a5df98..a76f77d 100644 (file)
@@ -1046,16 +1046,7 @@ static int wma_decode_superframe(struct private_wmadec_data *pwd, void *data,
        int ret;
        int16_t *samples;
 
-       if (buf_size == 0) {
-               pwd->last_superframe_len = 0;
-               *data_size = 0;
-               return 0;
-       }
-       if (buf_size < pwd->ahi.block_align) {
-               *data_size = 0;
-               return 0;
-       }
-       buf_size = pwd->ahi.block_align;
+       buf_size = pwd->ahi.packet_size - WMA_FRAME_SKIP;
        samples = data;
        init_get_bits(&pwd->gb, buf, buf_size);
        if (pwd->ahi.use_bit_reservoir) {