avfilter/vf_stack: Don't modify const strings
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Tue, 14 May 2019 04:15:17 +0000 (06:15 +0200)
committerPaul B Mahol <onemda@gmail.com>
Tue, 14 May 2019 12:47:51 +0000 (14:47 +0200)
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@gmail.com>
libavfilter/vf_stack.c

index 1455f19..4d254e0 100644 (file)
@@ -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);
             }