shithub: opus

Download patch

ref: 4a643d98c388727e73aebbe626a7379c6fddbbbe
parent: c6d977a966ccdb9ea684d8650cc6f8cccfedf8d7
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Fri Sep 14 12:27:03 EDT 2018

Fixes packet parsing for 16-bit CPUs

Without that change, a very long (> 682 ms) illegal packet could trigger
a wrap-around in the test and be accepted as valid.

Only 16-bit architectures (e.g. TI C5x) were affected.

--- a/src/opus.c
+++ b/src/opus.c
@@ -252,7 +252,7 @@
       /* Number of frames encoded in bits 0 to 5 */
       ch = *data++;
       count = ch&0x3F;
-      if (count <= 0 || framesize*count > 5760)
+      if (count <= 0 || framesize*(opus_int32)count > 5760)
          return OPUS_INVALID_PACKET;
       len--;
       /* Padding flag is bit 6 */