Commit b3928a1c authored by Michael Niedermayer's avatar Michael Niedermayer

swresample/swresample: Check count before memcpy()

Fixes undefined operation
Fixes part of 668007-media
Found-by: 's avatarMatt Wolenetz <wolenetz@google.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 8258e363
...@@ -413,9 +413,9 @@ int swri_realloc_audio(AudioData *a, int count){ ...@@ -413,9 +413,9 @@ int swri_realloc_audio(AudioData *a, int count){
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
for(i=0; i<a->ch_count; i++){ for(i=0; i<a->ch_count; i++){
a->ch[i]= a->data + i*(a->planar ? countb : a->bps); a->ch[i]= a->data + i*(a->planar ? countb : a->bps);
if(a->planar) memcpy(a->ch[i], old.ch[i], a->count*a->bps); if(a->count && a->planar) memcpy(a->ch[i], old.ch[i], a->count*a->bps);
} }
if(!a->planar) memcpy(a->ch[0], old.ch[0], a->count*a->ch_count*a->bps); if(a->count && !a->planar) memcpy(a->ch[0], old.ch[0], a->count*a->ch_count*a->bps);
av_freep(&old.data); av_freep(&old.data);
a->count= count; a->count= count;
......
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