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

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Tue May 14 07:15:17 EEST 2019


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);
             }
-- 
2.21.0



More information about the ffmpeg-devel mailing list