summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/codecs/libtremor/vorbisfile.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/apps/codecs/libtremor/vorbisfile.c b/apps/codecs/libtremor/vorbisfile.c
index 44a6d6e78a..271e5a09e3 100644
--- a/apps/codecs/libtremor/vorbisfile.c
+++ b/apps/codecs/libtremor/vorbisfile.c
@@ -144,8 +144,11 @@ static int ogg_stream_discard_packet(OggVorbis_File *vf,ogg_page *og,
144 } 144 }
145 if (ret < 0) 145 if (ret < 0)
146 return -1; 146 return -1;
147 if (vf->os.body_fill < og->body_len) 147 /* We might be pretending to have filled in more of the buffer than there is
148 if(_os_body_expand(&vf->os, og->body_len)) 148 actual space, in this case the body storage must be expanded before we
149 start writing to it */
150 if (vf->os.body_fill < og->body_len || vf->os.body_storage < vf->os.body_fill)
151 if(_os_body_expand(&vf->os, vf->os.body_fill - vf->os.body_storage + og->body_len))
149 return -1; 152 return -1;
150 memcpy(vf->os.body_data+vf->os.body_fill-og->body_len, og->body, og->body_len); 153 memcpy(vf->os.body_data+vf->os.body_fill-og->body_len, og->body, og->body_len);
151 return 1; 154 return 1;