diff mbox

[FFmpeg-devel,v3,4/5] avcodec/h264_sei: fix the size of user data unregistered

Message ID 20191219050907.15041-4-lance.lmwang@gmail.com
State New
Headers show

Commit Message

Lance Wang Dec. 19, 2019, 5:09 a.m. UTC
From: Limin Wang <lance.lmwang@gmail.com>

According to the specifications, the payloadSize includes the 16-byte size of UUID.

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
---
 libavcodec/h264_sei.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

James Almer Dec. 21, 2019, 1:47 a.m. UTC | #1
On 12/19/2019 2:09 AM, lance.lmwang@gmail.com wrote:
> From: Limin Wang <lance.lmwang@gmail.com>
> 
> According to the specifications, the payloadSize includes the 16-byte size of UUID.
> 
> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
> ---
>  libavcodec/h264_sei.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c
> index d4eb9c0dab..a565feabe2 100644
> --- a/libavcodec/h264_sei.c
> +++ b/libavcodec/h264_sei.c
> @@ -247,14 +247,14 @@ static int decode_unregistered_user_data(H264SEIUnregistered *h, GetBitContext *
>      uint8_t *user_data;
>      int e, build, i;
>  
> -    if (size < 16 || size >= INT_MAX - 16)
> +    if (size < 16 || size >= INT_MAX - 1)
>          return AVERROR_INVALIDDATA;
>  
> -    user_data = av_malloc(16 + size + 1);
> +    user_data = av_malloc(size + 1);
>      if (!user_data)
>          return AVERROR(ENOMEM);
>  
> -    for (i = 0; i < size + 16; i++)
> +    for (i = 0; i < size; i++)
>          user_data[i] = get_bits(gb, 8);
>  
>      user_data[i] = 0;

Applied, thanks.
diff mbox

Patch

diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c
index d4eb9c0dab..a565feabe2 100644
--- a/libavcodec/h264_sei.c
+++ b/libavcodec/h264_sei.c
@@ -247,14 +247,14 @@  static int decode_unregistered_user_data(H264SEIUnregistered *h, GetBitContext *
     uint8_t *user_data;
     int e, build, i;
 
-    if (size < 16 || size >= INT_MAX - 16)
+    if (size < 16 || size >= INT_MAX - 1)
         return AVERROR_INVALIDDATA;
 
-    user_data = av_malloc(16 + size + 1);
+    user_data = av_malloc(size + 1);
     if (!user_data)
         return AVERROR(ENOMEM);
 
-    for (i = 0; i < size + 16; i++)
+    for (i = 0; i < size; i++)
         user_data[i] = get_bits(gb, 8);
 
     user_data[i] = 0;