Commit 27463afe authored by michael's avatar michael

Check for alloc failures.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@17497 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 40ffb230
...@@ -718,7 +718,7 @@ resync: ...@@ -718,7 +718,7 @@ resync:
if(avi->stream_index >= 0){ if(avi->stream_index >= 0){
AVStream *st= s->streams[ avi->stream_index ]; AVStream *st= s->streams[ avi->stream_index ];
AVIStream *ast= st->priv_data; AVIStream *ast= st->priv_data;
int size; int size, err;
if(ast->sample_size <= 1) // minorityreport.AVI block_align=1024 sample_size=1 IMA-ADPCM if(ast->sample_size <= 1) // minorityreport.AVI block_align=1024 sample_size=1 IMA-ADPCM
size= INT_MAX; size= INT_MAX;
...@@ -730,14 +730,19 @@ resync: ...@@ -730,14 +730,19 @@ resync:
if(size > ast->remaining) if(size > ast->remaining)
size= ast->remaining; size= ast->remaining;
avi->last_pkt_pos= url_ftell(pb); avi->last_pkt_pos= url_ftell(pb);
av_get_packet(pb, pkt, size); err= av_get_packet(pb, pkt, size);
if(err<0)
return err;
if(ast->has_pal && pkt->data && pkt->size<(unsigned)INT_MAX/2){ if(ast->has_pal && pkt->data && pkt->size<(unsigned)INT_MAX/2){
void *ptr= av_realloc(pkt->data, pkt->size + 4*256 + FF_INPUT_BUFFER_PADDING_SIZE);
if(ptr){
ast->has_pal=0; ast->has_pal=0;
pkt->size += 4*256; pkt->size += 4*256;
pkt->data = av_realloc(pkt->data, pkt->size + FF_INPUT_BUFFER_PADDING_SIZE); pkt->data= ptr;
if(pkt->data)
memcpy(pkt->data + pkt->size - 4*256, ast->pal, 4*256); memcpy(pkt->data + pkt->size - 4*256, ast->pal, 4*256);
}else
av_log(s, AV_LOG_ERROR, "Failed to append palette\n");
} }
if (CONFIG_DV_DEMUXER && avi->dv_demux) { if (CONFIG_DV_DEMUXER && avi->dv_demux) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment