From 490865d2c263aea6b7ee1dc1f197bb9fa7cb9b46 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Sat, 27 Jun 2009 15:02:13 +0200 Subject: Fix strdup() string leaks On two occassions strings where strdup()'ed but never freed. Fix these two small memory leaks. --- libass/ass_font.c | 3 +++ libass/ass_render.c | 5 +++++ 2 files changed, 8 insertions(+) (limited to 'libass') diff --git a/libass/ass_font.c b/libass/ass_font.c index e76420dd..52e6d3a9 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -142,6 +142,7 @@ static int add_face(void *fc_priv, ass_font_t *font, uint32_t ch) if (error) { ass_msg(MSGL_WARN, MSGTR_LIBASS_ErrorOpeningMemoryFont, path); + free(path); return -1; } } else { @@ -149,6 +150,7 @@ static int add_face(void *fc_priv, ass_font_t *font, uint32_t ch) if (error) { ass_msg(MSGL_WARN, MSGTR_LIBASS_ErrorOpeningFont, path, index); + free(path); return -1; } } @@ -158,6 +160,7 @@ static int add_face(void *fc_priv, ass_font_t *font, uint32_t ch) font->faces[font->n_faces++] = face; update_transform(font); face_set_size(face, font->size); + free(path); return font->n_faces - 1; } diff --git a/libass/ass_render.c b/libass/ass_render.c index afea67d4..6662e513 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -338,6 +338,9 @@ void ass_renderer_done(ass_renderer_t *render_priv) free(render_priv); free(render_priv->text_info.glyphs); free(render_priv->text_info.lines); + + free(render_priv->settings.default_font); + free(render_priv->settings.default_family); } /** @@ -2679,6 +2682,8 @@ int ass_set_fonts(ass_renderer_t *priv, const char *default_font, if (priv->settings.default_family) free(priv->settings.default_family); + free(priv->settings.default_font); + free(priv->settings.default_family); priv->settings.default_font = default_font ? strdup(default_font) : 0; priv->settings.default_family = default_family ? strdup(default_family) : 0; -- cgit v1.2.3