diff options
author | Monty <xiphmont@xiph.org> | 2007-06-21 06:33:37 +0000 |
---|---|---|
committer | Monty <xiphmont@xiph.org> | 2007-06-21 06:33:37 +0000 |
commit | 6b97cd6d160107ce8c2493ee9318b1e463e6f637 (patch) | |
tree | 1c40798183bb9fa313d7528af4f7c57b1978275d | |
parent | 1f1e23ac32fc806efbe90507a8c8e5c360e23f96 (diff) | |
download | tremor-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.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -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]){ |