aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-10-16 16:33:23 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-27 07:20:58 +0100
commit0f70a8ae192999c751a75e634fca027af3cb4955 (patch)
tree01b7b3e0526ddb9f8b5278f5c20fea5e766543a2
parentf4d7dba3ce72344e8f2c6ea3293249df6127de00 (diff)
downloadffmpeg-0f70a8ae192999c751a75e634fca027af3cb4955.tar.gz
avcodec/movtextenc: Don't presume every style to have a font
Fixes segfaults in the absence of fonts; this can happen because the file didn't contain any or because the allocation of the font-string failed. Reviewed-by: Philip Langdale <philipl@overt.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> (cherry picked from commit 0dd7b8232d38317abc195edc48434ac1fd3e80fd)
-rw-r--r--libavcodec/movtextenc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
index 92e7ca6b3e..126fcedaa4 100644
--- a/libavcodec/movtextenc.c
+++ b/libavcodec/movtextenc.c
@@ -298,10 +298,14 @@ static int encode_sample_description(AVCodecContext *avctx)
// is avaiable in the ASS header
if (style && ass->styles_count) {
// Find unique font names
- av_dynarray_add(&s->fonts, &s->font_count, style->font_name);
- font_names_total_len += strlen(style->font_name);
+ if (style->font_name) {
+ av_dynarray_add(&s->fonts, &s->font_count, style->font_name);
+ font_names_total_len += strlen(style->font_name);
+ }
for (i = 0; i < ass->styles_count; i++) {
int found = 0;
+ if (!ass->styles[i].font_name)
+ continue;
for (j = 0; j < s->font_count; j++) {
if (!strcmp(s->fonts[j], ass->styles[i].font_name)) {
found = 1;