Using OPUS_MOVE() instead of OPUS_COPY() to move redundancy bytes

memcpy() aliasing bug caught by Felicia's encoder fuzzing test
This commit is contained in:
Jean-Marc Valin 2016-09-20 01:44:22 -04:00
parent 8ac5d89918
commit ae5f5cc1c5
No known key found for this signature in database
GPG key ID: 5E5DD9A36F9189C8

View file

@ -2196,7 +2196,7 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_
/* Put CELT->SILK redundancy data in the right place. */
if (redundancy && celt_to_silk && st->mode==MODE_HYBRID && st->use_vbr)
{
OPUS_COPY(data+ret, data+nb_compr_bytes, redundancy_bytes);
OPUS_MOVE(data+ret, data+nb_compr_bytes, redundancy_bytes);
nb_compr_bytes = nb_compr_bytes+redundancy_bytes;
}
}