diff options
Diffstat (limited to 'apps/codecs/libtremor/info.c')
-rw-r--r-- | apps/codecs/libtremor/info.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/apps/codecs/libtremor/info.c b/apps/codecs/libtremor/info.c index f3ac5f87f6..62a31d510e 100644 --- a/apps/codecs/libtremor/info.c +++ b/apps/codecs/libtremor/info.c | |||
@@ -140,11 +140,15 @@ static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ | |||
140 | } | 140 | } |
141 | 141 | ||
142 | static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ | 142 | static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ |
143 | int vendorlen=oggpack_read(opb,32); | 143 | int vendorlen; |
144 | vendorlen=oggpack_read(opb,32); | ||
144 | if(vendorlen<0)goto err_out; | 145 | if(vendorlen<0)goto err_out; |
146 | if(vendorlen>opb->storage-oggpack_bytes(opb))goto err_out; | ||
145 | vc->vendor=(char *)_ogg_calloc(vendorlen+1,1); | 147 | vc->vendor=(char *)_ogg_calloc(vendorlen+1,1); |
148 | if(vc->vendor==NULL)goto err_out; | ||
146 | _v_readstring(opb,vc->vendor,vendorlen); | 149 | _v_readstring(opb,vc->vendor,vendorlen); |
147 | vc->comments=0; | 150 | vc->comments=0; |
151 | /* ROCKBOX: the meat of this function was deleted as we don't need it */ | ||
148 | return(0); | 152 | return(0); |
149 | err_out: | 153 | err_out: |
150 | vorbis_comment_clear(vc); | 154 | vorbis_comment_clear(vc); |