summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty <xiphmont@xiph.org>2007-06-21 06:33:37 +0000
committerMonty <xiphmont@xiph.org>2007-06-21 06:33:37 +0000
commit6b97cd6d160107ce8c2493ee9318b1e463e6f637 (patch)
tree1c40798183bb9fa313d7528af4f7c57b1978275d
parent1f1e23ac32fc806efbe90507a8c8e5c360e23f96 (diff)
downloadtremor-6b97cd6d160107ce8c2493ee9318b1e463e6f637.tar.gz
Correct a cleanup dispatch error when a bitstream is rejected due to
illegal map/floor/residue type. The cleanup subdispatch was done by type, unfortunately, the invalid type just read in. Fixed. git-svn-id: https://svn.xiph.org/trunk/Tremor@13161 0101bb08-14d6-0310-b084-bc0e0c8e3800
-rw-r--r--info.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/info.c b/info.c
index 04c37d4..d453b21 100644
--- a/info.c
+++ b/info.c
@@ -123,13 +123,16 @@ void vorbis_info_clear(vorbis_info *vi){
if(ci->mode_param[i])_ogg_free(ci->mode_param[i]);
for(i=0;i<ci->maps;i++) /* unpack does the range checking */
- _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]);
+ if(ci->map_param[i])
+ _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]);
for(i=0;i<ci->floors;i++) /* unpack does the range checking */
- _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]);
+ if(ci->floor_param[i])
+ _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]);
for(i=0;i<ci->residues;i++) /* unpack does the range checking */
- _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]);
+ if(ci->residue_param[i])
+ _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]);
for(i=0;i<ci->books;i++){
if(ci->book_param[i]){