diff --git a/src/opus_decoder.c b/src/opus_decoder.c index 167e4e4891e66dce7a65a6ca761fb58fb190267a..0be6730d133c417fd87620b774029986dcee6efb 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -641,16 +641,14 @@ static int opus_packet_parse_impl(const unsigned char *data, opus_int32 len, /* Padding flag is bit 6 */ if (ch&0x40) { - int padding=0; int p; do { if (len<=0) return OPUS_INVALID_PACKET; p = *data++; len--; - padding += p==255 ? 254: p; + len -= p==255 ? 254: p; } while (p==255); - len -= padding; } if (len<0) return OPUS_INVALID_PACKET;