summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/vorbis/tremor/block.c
authorerik <erik>2007-02-08 01:45:16 (UTC)
committer erik <erik>2007-02-08 01:45:16 (UTC)
commit2e497f7cae45184184e2416114887095735958f5 (patch) (unidiff)
treea6b399d9bce5854dc7ad6c985b48965cf20680b0 /core/multimedia/opieplayer/vorbis/tremor/block.c
parent853b61f97e718359bef95147ab3c7beb0705acda (diff)
downloadopie-2e497f7cae45184184e2416114887095735958f5.zip
opie-2e497f7cae45184184e2416114887095735958f5.tar.gz
opie-2e497f7cae45184184e2416114887095735958f5.tar.bz2
Each file in this commit has a problem where it is possible to dereference
a pointer without that pointer being valid. This commit fixes each instance of that.
Diffstat (limited to 'core/multimedia/opieplayer/vorbis/tremor/block.c') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/vorbis/tremor/block.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/vorbis/tremor/block.c b/core/multimedia/opieplayer/vorbis/tremor/block.c
index 8949253..7b5531b 100644
--- a/core/multimedia/opieplayer/vorbis/tremor/block.c
+++ b/core/multimedia/opieplayer/vorbis/tremor/block.c
@@ -221,18 +221,20 @@ int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){
221void vorbis_dsp_clear(vorbis_dsp_state *v){ 221void vorbis_dsp_clear(vorbis_dsp_state *v){
222 int i; 222 int i;
223 if(v){ 223 if(v){
224 vorbis_info *vi=v->vi; 224 vorbis_info *vi=v->vi;
225 codec_setup_info *ci=(codec_setup_info *)(vi?vi->codec_setup:NULL); 225 codec_setup_info *ci=(codec_setup_info *)(vi?vi->codec_setup:NULL);
226 private_state *b=(private_state *)v->backend_state; 226 private_state *b=(private_state *)v->backend_state;
227 227
228 if(v->pcm){ 228 if(v->pcm){
229 if (vi) {
229 for(i=0;i<vi->channels;i++) 230 for(i=0;i<vi->channels;i++)
230 if(v->pcm[i])_ogg_free(v->pcm[i]); 231 if(v->pcm[i])_ogg_free(v->pcm[i]);
232 }
231 _ogg_free(v->pcm); 233 _ogg_free(v->pcm);
232 if(v->pcmret)_ogg_free(v->pcmret); 234 if(v->pcmret)_ogg_free(v->pcmret);
233 } 235 }
234 236
235 /* free mode lookups; these are actually vorbis_look_mapping structs */ 237 /* free mode lookups; these are actually vorbis_look_mapping structs */
236 if(ci){ 238 if(ci){
237 for(i=0;i<ci->modes;i++){ 239 for(i=0;i<ci->modes;i++){
238 int mapnum=ci->mode_param[i]->mapping; 240 int mapnum=ci->mode_param[i]->mapping;