summaryrefslogtreecommitdiff
path: root/src/framing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/framing.c')
-rw-r--r--src/framing.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/framing.c b/src/framing.c
index ef81912..724d116 100644
--- a/src/framing.c
+++ b/src/framing.c
@@ -597,9 +597,14 @@ char *ogg_sync_buffer(ogg_sync_state *oy, long size){
if(size>oy->storage-oy->fill){
/* We need to extend the internal buffer */
- long newsize=size+oy->fill+4096; /* an extra page to be nice */
+ long newsize;
void *ret;
+ if(size>INT_MAX-4096-oy->fill){
+ ogg_sync_clear(oy);
+ return NULL;
+ }
+ newsize=size+oy->fill+4096; /* an extra page to be nice */
if(oy->data)
ret=_ogg_realloc(oy->data,newsize);
else