Commit e5027834 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/avpacket: fix order of operations in case of too large allocation

Found-by: wm4
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 34b7c82d
...@@ -442,9 +442,11 @@ uint8_t *av_packet_pack_dictionary(AVDictionary *dict, int *size) ...@@ -442,9 +442,11 @@ uint8_t *av_packet_pack_dictionary(AVDictionary *dict, int *size)
const size_t new_size = *size + keylen + 1 + valuelen + 1; const size_t new_size = *size + keylen + 1 + valuelen + 1;
uint8_t *const new_data = av_realloc(data, new_size); uint8_t *const new_data = av_realloc(data, new_size);
if (!new_data || new_size > INT_MAX) if (!new_data)
goto fail; goto fail;
data = new_data; data = new_data;
if (new_size > INT_MAX)
goto fail;
memcpy(data + *size, t->key, keylen + 1); memcpy(data + *size, t->key, keylen + 1);
memcpy(data + *size + keylen + 1, t->value, valuelen + 1); memcpy(data + *size + keylen + 1, t->value, valuelen + 1);
......
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