diff options
author | Oneric <oneric@oneric.stub> | 2020-10-13 02:55:18 +0200 |
---|---|---|
committer | Oleg Oshmyan <chortos@inbox.lv> | 2020-10-27 01:03:04 +0200 |
commit | 96c071d8240d57535073bbc77e154aed8658733b (patch) | |
tree | 0576620c956b8d39b6f387797b6a154d359d512a | |
parent | b4f27d26079a3de98c4669eae8e11a2088494afb (diff) | |
download | libass-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.c | 11 |
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); |