summaryrefslogtreecommitdiffstats
path: root/libass/ass.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-11-17 21:24:52 +0100
committerwm4 <wm4@nowhere>2014-11-17 21:24:52 +0100
commit1b2795913a99e5df799b272528dcf57e8d6fce3f (patch)
treea990abb094d346ecab018a01aa3e2476db41c917 /libass/ass.c
parent2f9467cfd2574af44f97ee89b460c410a5a3c85a (diff)
downloadlibass-1b2795913a99e5df799b272528dcf57e8d6fce3f.tar.bz2
libass-1b2795913a99e5df799b272528dcf57e8d6fce3f.tar.xz
More malloc checking
Use strndup() instead of malloc+copy. Make all code deal with the possibility that ASS_Drawing.text can be NULL (which can happen on allocation failure). Skip fix_collisions() on malloc failure - the lines will overlap, but at least libass won't crash.
Diffstat (limited to 'libass/ass.c')
-rw-r--r--libass/ass.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/libass/ass.c b/libass/ass.c
index 80f4e7a..75f646f 100644
--- a/libass/ass.c
+++ b/libass/ass.c
@@ -579,9 +579,7 @@ static int process_info_line(ASS_Track *track, char *str)
} else if (!strncmp(str, "Language:", 9)) {
char *p = str + 9;
while (*p && isspace(*p)) p++;
- track->Language = malloc(3);
- strncpy(track->Language, p, 2);
- track->Language[2] = 0;
+ track->Language = strndup(p, 2);
}
return 0;
}