[FFmpeg-devel] [PATCH] avfilter/vf_stack: Don't modify const strings

Gyan ffmpeg at gyani.pro
Tue May 14 08:15:30 EEST 2019



On 14-05-2019 09:45 AM, Andreas Rheinhardt wrote:
> b3b7ba62 introduced undefined behaviour: A (non-modifiable) string
> literal has been assigned to a modifiable string; said string was indeed
> modified later via av_strtok.
> This of course caused compiler warnings because of the discarded
> qualifier; these are in particular fixed by this commit.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>   libavfilter/vf_stack.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/libavfilter/vf_stack.c b/libavfilter/vf_stack.c
> index 1455f196a7..4d254e0013 100644
> --- a/libavfilter/vf_stack.c
> +++ b/libavfilter/vf_stack.c
> @@ -84,9 +84,11 @@ static av_cold int init(AVFilterContext *ctx)
>   
>       if (!strcmp(ctx->filter->name, "xstack")) {
>           if (!s->layout) {
> -            if (s->nb_inputs == 2)
> -                s->layout = "0_0|w0_0";
> -            else {
> +            if (s->nb_inputs == 2) {
> +                s->layout = av_strdup("0_0|w0_0");
> +                if (!s->layout)
> +                    return AVERROR(ENOMEM);
> +            } else {
>                   av_log(ctx, AV_LOG_ERROR, "No layout specified.\n");
>                   return AVERROR(EINVAL);
>               }

Sorry, I missed what was being done with the string later on.

Gyan


More information about the ffmpeg-devel mailing list