diff options
author | Oneric <oneric@oneric.stub> | 2020-10-12 22:46:38 +0200 |
---|---|---|
committer | Oleg Oshmyan <chortos@inbox.lv> | 2020-10-27 01:03:04 +0200 |
commit | 241e6137a5c9a4bfccbea48ce9eac75f7f13a784 (patch) | |
tree | 12c899f40eb8d418ec8bdb9d06f228c7a011065d | |
parent | 64dd74bfef8a4b9039d2fcb72f3c2ed02dbf1e9a (diff) | |
download | libass-241e6137a5c9a4bfccbea48ce9eac75f7f13a784.tar.bz2 libass-241e6137a5c9a4bfccbea48ce9eac75f7f13a784.tar.xz |
ass.c: handle style alloc failure
-rw-r--r-- | libass/ass.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libass/ass.c b/libass/ass.c index f573885..38dbde1 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -503,6 +503,8 @@ static int process_style(ASS_Track *track, char *str) ass_msg(track->library, MSGL_V, "[%p] Style: %s", track, str); sid = ass_alloc_style(track); + if (sid < 0) + return -1; style = track->styles + sid; target = style; @@ -621,6 +623,7 @@ static void custom_format_line_compatibility(ASS_Track *const track, static int process_styles_line(ASS_Track *track, char *str) { + int ret = 0; if (!strncmp(str, "Format:", 7)) { char *p = str + 7; skip_spaces(&p); @@ -635,9 +638,9 @@ static int process_styles_line(ASS_Track *track, char *str) } else if (!strncmp(str, "Style:", 6)) { char *p = str + 6; skip_spaces(&p); - process_style(track, p); + ret = process_style(track, p); } - return 0; + return ret; } static inline void check_duplicate_info_line(const ASS_Track *const track, |