aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2018-10-16 22:01:28 +0100
committerMark Thompson <sw@jkqxz.net>2018-10-22 23:01:32 +0100
commitda6db843b80e6140dbf28f05195b6a17018fd68c (patch)
treeb7b0ff7de5d0034d69b259c2d4e47f1401d552bd
parente5fda1ff289692ffb538e04abb66a9b550750596 (diff)
downloadffmpeg-da6db843b80e6140dbf28f05195b6a17018fd68c.tar.gz
cbs_h2645: Allocate all internal buffers with padding
Any of these buffers (for both H.264 and H.265) might reasonably be parsed using the bitstream reader, so include padding on all of them.
-rw-r--r--libavcodec/cbs_h2645.c3
-rw-r--r--libavcodec/cbs_h264_syntax_template.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c
index a1b92c87ce..e55bd00183 100644
--- a/libavcodec/cbs_h2645.c
+++ b/libavcodec/cbs_h2645.c
@@ -319,7 +319,8 @@ static int cbs_h2645_read_more_rbsp_data(GetBitContext *gbc)
#define byte_alignment(rw) (get_bits_count(rw) % 8)
#define allocate(name, size) do { \
- name ## _ref = av_buffer_allocz(size); \
+ name ## _ref = av_buffer_allocz(size + \
+ AV_INPUT_BUFFER_PADDING_SIZE); \
if (!name ## _ref) \
return AVERROR(ENOMEM); \
name = name ## _ref->data; \
diff --git a/libavcodec/cbs_h264_syntax_template.c b/libavcodec/cbs_h264_syntax_template.c
index 7d0ce5918a..9e29132fec 100644
--- a/libavcodec/cbs_h264_syntax_template.c
+++ b/libavcodec/cbs_h264_syntax_template.c
@@ -718,7 +718,7 @@ static int FUNC(sei_user_data_registered)(CodedBitstreamContext *ctx, RWContext
*payload_size = i + current->data_length;
#endif
- allocate(current->data, current->data_length + AV_INPUT_BUFFER_PADDING_SIZE);
+ allocate(current->data, current->data_length);
for (j = 0; j < current->data_length; j++)
xu(8, itu_t_t35_payload_byte[i], current->data[j], 0x00, 0xff, 1, i + j);