mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-17 08:30:06 +02:00
Add some defensive code in libmad to fix crash opening a corrupt .mp2
This commit is contained in:
parent
b5f2046286
commit
85026f9895
@ -2632,9 +2632,14 @@ int mad_layer_III(struct mad_stream *stream, struct mad_frame *frame)
|
|||||||
assert(stream->md_len + md_len -
|
assert(stream->md_len + md_len -
|
||||||
si.main_data_begin <= MAD_BUFFER_MDLEN);
|
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,
|
memcpy(*stream->main_data + stream->md_len,
|
||||||
mad_bit_nextbyte(&stream->ptr),
|
mad_bit_nextbyte(&stream->ptr),
|
||||||
frame_used = md_len - si.main_data_begin);
|
frame_used = nCopy);
|
||||||
stream->md_len += frame_used;
|
stream->md_len += frame_used;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user