1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 07:39:42 +02:00

Add some defensive code in libmad to fix crash opening a corrupt .mp2

This commit is contained in:
Paul Licameli 2015-12-20 19:50:27 -05:00
parent b5f2046286
commit 85026f9895

View File

@ -2632,9 +2632,14 @@ int mad_layer_III(struct mad_stream *stream, struct mad_frame *frame)
assert(stream->md_len + md_len -
si.main_data_begin <= MAD_BUFFER_MDLEN);
int nCopy = md_len - si.main_data_begin;
if (nCopy > MAD_BUFFER_MDLEN - stream->md_len)
// PRL defend against an observed violation of the assertion above
nCopy = MAD_BUFFER_MDLEN - stream->md_len;
memcpy(*stream->main_data + stream->md_len,
mad_bit_nextbyte(&stream->ptr),
frame_used = md_len - si.main_data_begin);
frame_used = nCopy);
stream->md_len += frame_used;
}
}