summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authorOneric <oneric@oneric.stub>2020-10-12 22:46:38 +0200
committerOleg Oshmyan <chortos@inbox.lv>2020-10-27 01:03:04 +0200
commit241e6137a5c9a4bfccbea48ce9eac75f7f13a784 (patch)
tree12c899f40eb8d418ec8bdb9d06f228c7a011065d /libass
parent64dd74bfef8a4b9039d2fcb72f3c2ed02dbf1e9a (diff)
downloadlibass-241e6137a5c9a4bfccbea48ce9eac75f7f13a784.tar.bz2
libass-241e6137a5c9a4bfccbea48ce9eac75f7f13a784.tar.xz
ass.c: handle style alloc failure
Diffstat (limited to 'libass')
-rw-r--r--libass/ass.c7
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,