summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@blackbox>2009-06-27 15:02:13 +0200
committerGrigori Goronzy <greg@blackbox>2009-06-27 16:31:30 +0200
commit490865d2c263aea6b7ee1dc1f197bb9fa7cb9b46 (patch)
tree5788facc49d215e52ddd897ab9f0999d47c15be7
parentc58cd622ea2d2ab54fd56533c57d9995802f7bfd (diff)
downloadlibass-490865d2c263aea6b7ee1dc1f197bb9fa7cb9b46.tar.bz2
libass-490865d2c263aea6b7ee1dc1f197bb9fa7cb9b46.tar.xz
Fix strdup() string leaks
On two occassions strings where strdup()'ed but never freed. Fix these two small memory leaks.
-rw-r--r--libass/ass_font.c3
-rw-r--r--libass/ass_render.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c
index e76420d..52e6d3a 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 afea67d..6662e51 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;