diff options
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | src/libogg-1.3.1/include/ogg/config_types.h (renamed from src/libogg-1.3.0/include/ogg/config_types.h) | 1 | ||||
| -rw-r--r-- | src/libogg-1.3.1/include/ogg/ogg.h (renamed from src/libogg-1.3.0/include/ogg/ogg.h) | 0 | ||||
| -rw-r--r-- | src/libogg-1.3.1/include/ogg/os_types.h (renamed from src/libogg-1.3.0/include/ogg/os_types.h) | 0 | ||||
| -rw-r--r-- | src/libogg-1.3.1/src/bitwise.c (renamed from src/libogg-1.3.0/src/bitwise.c) | 0 | ||||
| -rw-r--r-- | src/libogg-1.3.1/src/framing.c (renamed from src/libogg-1.3.0/src/framing.c) | 46 | 
6 files changed, 34 insertions, 15 deletions
@@ -228,7 +228,7 @@ NDIR=$(MOUNT_DIR)/null  UIDIR=$(MOUNT_DIR)/ui  JPDIR=$(MOUNT_DIR)/jpeg-8c  SPEEXDIR=$(MOUNT_DIR)/libspeex -OGGDIR=$(MOUNT_DIR)/libogg-1.3.0 +OGGDIR=$(MOUNT_DIR)/libogg-1.3.1  OPUSDIR=$(MOUNT_DIR)/opus-1.0.2  OPUSFILEDIR=$(MOUNT_DIR)/opusfile-0.5  ZDIR=$(MOUNT_DIR)/zlib diff --git a/src/libogg-1.3.0/include/ogg/config_types.h b/src/libogg-1.3.1/include/ogg/config_types.h index e0dd8655..28288279 100644 --- a/src/libogg-1.3.0/include/ogg/config_types.h +++ b/src/libogg-1.3.1/include/ogg/config_types.h @@ -1,6 +1,7 @@  #ifndef __CONFIG_TYPES_H__  #define __CONFIG_TYPES_H__ +/* these are filled in by configure */  /* #define INCLUDE_INTTYPES_H 1 */  #define INCLUDE_STDINT_H 1  /* #define INCLUDE_SYS_TYPES_H 1 */ diff --git a/src/libogg-1.3.0/include/ogg/ogg.h b/src/libogg-1.3.1/include/ogg/ogg.h index cea4ebed..cea4ebed 100644 --- a/src/libogg-1.3.0/include/ogg/ogg.h +++ b/src/libogg-1.3.1/include/ogg/ogg.h diff --git a/src/libogg-1.3.0/include/ogg/os_types.h b/src/libogg-1.3.1/include/ogg/os_types.h index d6691b70..d6691b70 100644 --- a/src/libogg-1.3.0/include/ogg/os_types.h +++ b/src/libogg-1.3.1/include/ogg/os_types.h diff --git a/src/libogg-1.3.0/src/bitwise.c b/src/libogg-1.3.1/src/bitwise.c index 68aca675..68aca675 100644 --- a/src/libogg-1.3.0/src/bitwise.c +++ b/src/libogg-1.3.1/src/bitwise.c diff --git a/src/libogg-1.3.0/src/framing.c b/src/libogg-1.3.1/src/framing.c index 4452cbd5..3a2f0a60 100644 --- a/src/libogg-1.3.0/src/framing.c +++ b/src/libogg-1.3.1/src/framing.c @@ -12,7 +12,7 @@   function: code raw packets into framed OggSquish stream and             decode Ogg streams back into raw packets - last mod: $Id: framing.c 18052 2011-08-04 17:57:02Z giles $ + last mod: $Id: framing.c 18758 2013-01-08 16:29:56Z tterribe $   note: The CRC code is directly derived from public domain code by   Ross Williams (ross@guest.adelaide.edu.au).  See docs/framing.html @@ -21,6 +21,7 @@   ********************************************************************/  #include <stdlib.h> +#include <limits.h>  #include <string.h>  #include <ogg/ogg.h> @@ -236,39 +237,51 @@ int ogg_stream_destroy(ogg_stream_state *os){  /* Helpers for ogg_stream_encode; this keeps the structure and     what's happening fairly clear */ -static int _os_body_expand(ogg_stream_state *os,int needed){ -  if(os->body_storage<=os->body_fill+needed){ +static int _os_body_expand(ogg_stream_state *os,long needed){ +  if(os->body_storage-needed<=os->body_fill){ +    long body_storage;      void *ret; -    ret=_ogg_realloc(os->body_data,(os->body_storage+needed+1024)* -                     sizeof(*os->body_data)); +    if(os->body_storage>LONG_MAX-needed){ +      ogg_stream_clear(os); +      return -1; +    } +    body_storage=os->body_storage+needed; +    if(body_storage<LONG_MAX-1024)body_storage+=1024; +    ret=_ogg_realloc(os->body_data,body_storage*sizeof(*os->body_data));      if(!ret){        ogg_stream_clear(os);        return -1;      } -    os->body_storage+=(needed+1024); +    os->body_storage=body_storage;      os->body_data=ret;    }    return 0;  } -static int _os_lacing_expand(ogg_stream_state *os,int needed){ -  if(os->lacing_storage<=os->lacing_fill+needed){ +static int _os_lacing_expand(ogg_stream_state *os,long needed){ +  if(os->lacing_storage-needed<=os->lacing_fill){ +    long lacing_storage;      void *ret; -    ret=_ogg_realloc(os->lacing_vals,(os->lacing_storage+needed+32)* -                     sizeof(*os->lacing_vals)); +    if(os->lacing_storage>LONG_MAX-needed){ +      ogg_stream_clear(os); +      return -1; +    } +    lacing_storage=os->lacing_storage+needed; +    if(lacing_storage<LONG_MAX-32)lacing_storage+=32; +    ret=_ogg_realloc(os->lacing_vals,lacing_storage*sizeof(*os->lacing_vals));      if(!ret){        ogg_stream_clear(os);        return -1;      }      os->lacing_vals=ret; -    ret=_ogg_realloc(os->granule_vals,(os->lacing_storage+needed+32)* +    ret=_ogg_realloc(os->granule_vals,lacing_storage*                       sizeof(*os->granule_vals));      if(!ret){        ogg_stream_clear(os);        return -1;      }      os->granule_vals=ret; -    os->lacing_storage+=(needed+32); +    os->lacing_storage=lacing_storage;    }    return 0;  } @@ -304,12 +317,17 @@ void ogg_page_checksum_set(ogg_page *og){  int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count,                         long e_o_s, ogg_int64_t granulepos){ -  int bytes = 0, lacing_vals, i; +  long bytes = 0, lacing_vals; +  int i;    if(ogg_stream_check(os)) return -1;    if(!iov) return 0; -  for (i = 0; i < count; ++i) bytes += (int)iov[i].iov_len; +  for (i = 0; i < count; ++i){ +    if(iov[i].iov_len>LONG_MAX) return -1; +    if(bytes>LONG_MAX-(long)iov[i].iov_len) return -1; +    bytes += (long)iov[i].iov_len; +  }    lacing_vals=bytes/255+1;    if(os->body_returned){  | 
