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

Andreas Rheinhardt git at videolan.org
Tue May 14 15:52:52 EEST 2019


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Tue May 14 06:15:17 2019 +0200| [670251de56cdcda0c32d588959c8ed2da09075a2] | committer: Paul B Mahol

avfilter/vf_stack: Don't modify const strings

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>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=670251de56cdcda0c32d588959c8ed2da09075a2
---

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



More information about the ffmpeg-cvslog mailing list