[FFmpeg-devel] [PATCH] avutil/channel_layout: don't error out on truncated strings

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Jul 3 10:19:48 EEST 2022


James Almer:
> The doxy for av_channel_layout_describe() states that the user should look
> at the return value to check if the string was truncated. Returning an error
> code in this scenario goes against this and is an API break.
> 
> This is a better fix than the one committed in 8154cb7c2f for the timeout
> fuzzing issue.
> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavutil/channel_layout.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavutil/channel_layout.c b/libavutil/channel_layout.c
> index 1887987789..d54a0adbe1 100644
> --- a/libavutil/channel_layout.c
> +++ b/libavutil/channel_layout.c
> @@ -759,7 +759,7 @@ int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout,
>                  av_bprintf(bp, "@%s", channel_layout->u.map[i].name);
>  
>              if (!av_bprint_is_complete(bp))
> -                return AVERROR(ENOMEM);
> +                break;
>  
>          }
>          if (channel_layout->nb_channels) {

Isn't this actually still against the API? av_channel_layout_describe()
will not return the correct number of bytes necessary to write the
string for the channel layout.

- Andreas


More information about the ffmpeg-devel mailing list