From: Stefan Sauer Date: Fri, 23 Mar 2012 17:36:21 +0000 (+0100) Subject: modplug: memory handling cleanup X-Git-Tag: RELEASE-0.11.90~10^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d84d98943af42ce645ee022207bcf04e747d2d4a;p=platform%2Fupstream%2Fgst-plugins-bad.git modplug: memory handling cleanup Don't leak the CSoundFile. Use define for comment buffer size and ensure it is 0 terminated. --- diff --git a/ext/modplug/gstmodplug.cc b/ext/modplug/gstmodplug.cc index 8b42a52..3468099 100644 --- a/ext/modplug/gstmodplug.cc +++ b/ext/modplug/gstmodplug.cc @@ -646,7 +646,8 @@ gst_modplug_loop (GstModPlug * modplug) GstEvent *newsegment; GstTagList *tags; gboolean ok; - gchar comment[16384]; + #define COMMENT_SIZE 16384 + gchar comment[COMMENT_SIZE]; ok = gst_modplug_load_song (modplug); gst_buffer_unref (modplug->buffer); @@ -668,7 +669,9 @@ gst_modplug_loop (GstModPlug * modplug) GST_TAG_BEATS_PER_MINUTE, (gdouble) modplug->mSoundFile->GetMusicTempo (), NULL); - if (modplug->mSoundFile->GetSongComments ((gchar *) & comment, 16384, 32)) { + if (modplug->mSoundFile->GetSongComments ((gchar *) & comment, + COMMENT_SIZE, 32)) { + comment[COMMENT_SIZE - 1] = '\0'; gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_COMMENT, comment, NULL); } @@ -777,6 +780,7 @@ gst_modplug_change_state (GstElement * element, GstStateChange transition) } if (modplug->mSoundFile) { modplug->mSoundFile->Destroy (); + delete modplug->mSoundFile; modplug->mSoundFile = NULL; } break;