summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOneric <oneric@oneric.stub>2020-10-13 02:55:18 +0200
committerOleg Oshmyan <chortos@inbox.lv>2020-10-27 01:03:04 +0200
commit96c071d8240d57535073bbc77e154aed8658733b (patch)
tree0576620c956b8d39b6f387797b6a154d359d512a
parentb4f27d26079a3de98c4669eae8e11a2088494afb (diff)
downloadlibass-96c071d8240d57535073bbc77e154aed8658733b.tar.bz2
libass-96c071d8240d57535073bbc77e154aed8658733b.tar.xz
Ensure track->event_format is valid before parsing
In case of strdup-failure track->event_format can be assigned NULL in event_format_fallback or in process_events_line
-rw-r--r--libass/ass.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libass/ass.c b/libass/ass.c
index afb511c..fd1c417 100644
--- a/libass/ass.c
+++ b/libass/ass.c
@@ -777,6 +777,13 @@ static int process_events_line(ASS_Track *track, char *str)
int eid;
ASS_Event *event;
+ // We can't parse events without event_format
+ if (!track->event_format) {
+ event_format_fallback(track);
+ if (!track->event_format)
+ return -1;
+ }
+
str += 9;
skip_spaces(&str);
@@ -785,10 +792,6 @@ static int process_events_line(ASS_Track *track, char *str)
return -1;
event = track->events + eid;
- // We can't parse events with event_format
- if (!track->event_format)
- event_format_fallback(track);
-
process_event_tail(track, event, str, 0);
} else {
ass_msg(track->library, MSGL_V, "Not understood: '%.30s'", str);