diff options
author | Mark Thompson <sw@jkqxz.net> | 2018-10-16 22:01:28 +0100 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2018-10-22 23:01:32 +0100 |
commit | da6db843b80e6140dbf28f05195b6a17018fd68c (patch) | |
tree | b7b0ff7de5d0034d69b259c2d4e47f1401d552bd | |
parent | e5fda1ff289692ffb538e04abb66a9b550750596 (diff) | |
download | ffmpeg-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.c | 3 | ||||
-rw-r--r-- | libavcodec/cbs_h264_syntax_template.c | 2 |
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); |