]> granicus.if.org Git - libass/commitdiff
Fix strdup() string leaks
authorGrigori Goronzy <greg@blackbox>
Sat, 27 Jun 2009 13:02:13 +0000 (15:02 +0200)
committerGrigori Goronzy <greg@blackbox>
Sat, 27 Jun 2009 14:31:30 +0000 (16:31 +0200)
On two occassions strings where strdup()'ed but never freed.  Fix these
two small memory leaks.

libass/ass_font.c
libass/ass_render.c

index e76420dd3ab2247bb51338997b1c328d822ac0ad..52e6d3a91ce9cb1b2eb76bae25360a460bd390ec 100644 (file)
@@ -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;
 }
 
index afea67d4f52bba05ab5a8687061c35756c7e1ba4..6662e5137c74986500b234700fe24e394259997d 100644 (file)
@@ -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;