Changeset fd9d431500c57afe9d014e5d30d54b9378afc484
- Timestamp:
- 03/11/08 02:57:18
(2 months ago)
- Author:
- Jean-Baptiste Kempf <jb@videolan.org>
- git-committer:
- Jean-Baptiste Kempf <jb@videolan.org> 1205200638 -0700
- git-parent:
[1703d8421a3b582da45c837f42e04d1ea0e8d609]
- git-author:
- Jean-Baptiste Kempf <jb@videolan.org> 1205200638 -0700
- Message:
Additional checks on malloc output in data reader.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r1703d84 |
rfd9d431 |
|
| 150 | 150 | p_demux->pf_demux = Demux; |
|---|
| 151 | 151 | p_demux->pf_control = Control; |
|---|
| | 152 | |
|---|
| 152 | 153 | p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) ); |
|---|
| | 154 | if( p_sys == NULL ) |
|---|
| | 155 | { |
|---|
| | 156 | return VLC_ENOMEM; |
|---|
| | 157 | } |
|---|
| 153 | 158 | memset( p_sys, 0, sizeof( demux_sys_t ) ); |
|---|
| | 159 | |
|---|
| 154 | 160 | p_sys->i_data_offset = 0; |
|---|
| 155 | 161 | p_sys->i_track = 0; |
|---|
| … | … | |
| 1174 | 1180 | case VLC_FOURCC( 'r','a','a','c' ): |
|---|
| 1175 | 1181 | case VLC_FOURCC( 'r','a','c','p' ): |
|---|
| | 1182 | fmt.i_codec = VLC_FOURCC( 'm','p','4','a' ); |
|---|
| | 1183 | |
|---|
| 1176 | 1184 | if( fmt.i_extra > 0 ) { fmt.i_extra--; p_peek++; } |
|---|
| 1177 | 1185 | if( fmt.i_extra > 0 ) |
|---|
| 1178 | 1186 | { |
|---|
| 1179 | 1187 | fmt.p_extra = malloc( fmt.i_extra ); |
|---|
| | 1188 | if( fmt.p_extra == NULL ) |
|---|
| | 1189 | { |
|---|
| | 1190 | msg_Err( p_demux, "Error in the extra data" ); |
|---|
| | 1191 | return VLC_EGENERIC; |
|---|
| | 1192 | } |
|---|
| 1180 | 1193 | memcpy( fmt.p_extra, p_peek, fmt.i_extra ); |
|---|
| 1181 | 1194 | } |
|---|
| 1182 | | |
|---|
| 1183 | | fmt.i_codec = VLC_FOURCC( 'm','p','4','a' ); |
|---|
| 1184 | 1195 | break; |
|---|
| 1185 | 1196 | |
|---|
| … | … | |
| 1192 | 1203 | else |
|---|
| 1193 | 1204 | fmt.audio.i_blockalign = i_coded_frame_size; |
|---|
| 1194 | | if( !fmt.i_extra ) break; |
|---|
| 1195 | | fmt.p_extra = malloc( fmt.i_extra ); |
|---|
| 1196 | | memcpy( fmt.p_extra, p_peek, fmt.i_extra ); |
|---|
| | 1205 | |
|---|
| | 1206 | if( fmt.i_extra > 0 ) |
|---|
| | 1207 | { |
|---|
| | 1208 | fmt.p_extra = malloc( fmt.i_extra ); |
|---|
| | 1209 | if( fmt.p_extra == NULL ) |
|---|
| | 1210 | { |
|---|
| | 1211 | msg_Err( p_demux, "Error in the extra data" ); |
|---|
| | 1212 | return VLC_EGENERIC; |
|---|
| | 1213 | } |
|---|
| | 1214 | memcpy( fmt.p_extra, p_peek, fmt.i_extra ); |
|---|
| | 1215 | } |
|---|
| 1197 | 1216 | break; |
|---|
| 1198 | 1217 | |
|---|