shithub: opusfile

Download patch

ref: d12f4d30cf0a5056d51ce795a5a9aabb65693eda
parent: cfe03293f7bc7ac036fb1c4a7ea4d6349569ea01
author: Timothy B. Terriberry <tterribe@xiph.org>
date: Sun Dec 6 10:22:10 EST 2015

Better overflow check for serialno allocation.

--- a/src/opusfile.c
+++ b/src/opusfile.c
@@ -237,7 +237,9 @@
   nserialnos=*_nserialnos;
   cserialnos=*_cserialnos;
   if(OP_UNLIKELY(nserialnos>=cserialnos)){
-    if(OP_UNLIKELY(cserialnos>INT_MAX-1>>1))return OP_EFAULT;
+    if(OP_UNLIKELY(cserialnos>INT_MAX/(int)sizeof(*serialnos)-1>>1)){
+      return OP_EFAULT;
+    }
     cserialnos=2*cserialnos+1;
     OP_ASSERT(nserialnos<cserialnos);
     serialnos=(ogg_uint32_t *)_ogg_realloc(serialnos,