From e50278348a3144f7de217cede54fc24399a733f8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 20 Nov 2013 19:44:21 +0100 Subject: [PATCH] avcodec/avpacket: fix order of operations in case of too large allocation Found-by: wm4 Signed-off-by: Michael Niedermayer --- libavcodec/avpacket.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 88ec0be4a3..7a6195c1ba 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -442,9 +442,11 @@ uint8_t *av_packet_pack_dictionary(AVDictionary *dict, int *size) const size_t new_size = *size + keylen + 1 + valuelen + 1; uint8_t *const new_data = av_realloc(data, new_size); - if (!new_data || new_size > INT_MAX) + if (!new_data) goto fail; data = new_data; + if (new_size > INT_MAX) + goto fail; memcpy(data + *size, t->key, keylen + 1); memcpy(data + *size + keylen + 1, t->value, valuelen + 1);