[FFmpeg-devel] [PATCH] avformat/utils: fix undefined behaviour

James Almer jamrial at gmail.com
Sun Feb 14 23:21:21 EET 2021


On 2/14/2021 6:09 PM, Paul B Mahol wrote:
> Fixes following report:
> libavformat/utils.c:1429:14: runtime error: applying zero offset to null pointer

How is data NULL here? That's the input packet's data pointer, and this 
loop is accessed only if size is > 0. data == NULL and size != 0 doesn't 
sound valid. Or am i missing something?

Try compiling with assert level set to 1, see if you get an assertion 
failure on avpacket helpers.

> SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior libavformat/utils.c:1429:14
> 
> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
>   libavformat/utils.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/utils.c b/libavformat/utils.c
> index 3e955b85bc..e4f100fda2 100644
> --- a/libavformat/utils.c
> +++ b/libavformat/utils.c
> @@ -1426,8 +1426,10 @@ static int parse_packet(AVFormatContext *s, AVPacket *pkt,
>           pkt->pts = pkt->dts = AV_NOPTS_VALUE;
>           pkt->pos = -1;
>           /* increment read pointer */
> -        data += len;
> -        size -= len;
> +        if (len > 0) {
> +            data += len;
> +            size -= len;
> +        }
>   
>           got_output = !!out_pkt.size;
>   
> 



More information about the ffmpeg-devel mailing list