From 855449e67c80ba819ae8b5cfe32d59c86826a9f8 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 4 Aug 2012 03:47:05 +0200 Subject: mplayer: free return value of chapter_name() --- mplayer.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mplayer.c b/mplayer.c index b25a18a460..9290212b18 100644 --- a/mplayer.c +++ b/mplayer.c @@ -2914,17 +2914,20 @@ int get_current_chapter(struct MPContext *mpctx) char *chapter_display_name(struct MPContext *mpctx, int chapter) { char *name = chapter_name(mpctx, chapter); + char *dname = name; if (name) { - name = talloc_asprintf(name, "(%d) %s", chapter + 1, name); + dname = talloc_asprintf(NULL, "(%d) %s", chapter + 1, name); } else { int chapter_count = get_chapter_count(mpctx); if (chapter_count <= 0) - name = talloc_asprintf(NULL, "(%d)", chapter + 1); + dname = talloc_asprintf(NULL, "(%d)", chapter + 1); else - name = talloc_asprintf(NULL, "(%d) of %d", chapter + 1, - chapter_count); + dname = talloc_asprintf(NULL, "(%d) of %d", chapter + 1, + chapter_count); } - return name; + if (dname != name) + talloc_free(name); + return dname; } // returns NULL if chapter name unavailable -- cgit v1.2.3