From: Jaechul Lee Date: Wed, 22 Apr 2020 01:32:41 +0000 (+0900) Subject: sound-player: Fix memory leak in stop APIs X-Git-Tag: submit/tizen/20200422.064310^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e9ee2b3cc02b4fc461b51936bfa1a0a79d9102f6;p=platform%2Fcore%2Fmultimedia%2Fpulseaudio-modules-tizen.git sound-player: Fix memory leak in stop APIs Every time stop APIs called, memory leak found. The reason why sink_input's userdata that has wrapper structure such as memblockq_stream, file_stream should be freed. [Version] 13.0.13 [Issue Type] Bug Change-Id: I221a6ace56b4c57f288c263c6e3b5fe5abf5e38a Signed-off-by: Jaechul Lee --- diff --git a/packaging/pulseaudio-modules-tizen.spec b/packaging/pulseaudio-modules-tizen.spec index e71fd06..ba1d2cc 100644 --- a/packaging/pulseaudio-modules-tizen.spec +++ b/packaging/pulseaudio-modules-tizen.spec @@ -1,6 +1,6 @@ Name: pulseaudio-modules-tizen Summary: Pulseaudio modules for Tizen -Version: 13.0.12 +Version: 13.0.13 Release: 0 Group: Multimedia/Audio License: LGPL-2.1+ diff --git a/src/module-sound-player.c b/src/module-sound-player.c index a1fe61b..7071e9c 100644 --- a/src/module-sound-player.c +++ b/src/module-sound-player.c @@ -290,8 +290,8 @@ static void _simple_stop(struct userdata *u, const char *file_path) { PA_IDXSET_FOREACH(si, u->module->core->sink_inputs, idx) { if (pa_safe_streq(pa_proplist_gets(si->proplist, PA_PROP_MEDIA_NAME), name_to_search)) { - pa_log_info("unlink sink-input : %u", si->index); - pa_sink_input_unlink(si); + pa_log_info("kill sink-input : %u", si->index); + pa_sink_input_kill(si); } } @@ -309,8 +309,8 @@ static void _simple_stop_all(struct userdata *u) { media_name = pa_proplist_gets(si->proplist, PA_PROP_MEDIA_NAME); if (media_name && pa_strneq(media_name, KEYTONE_PREFIX, strlen(KEYTONE_PREFIX))) { - pa_log_info("unlink sink-input : %u", si->index); - pa_sink_input_unlink(si); + pa_log_info("kill sink-input : %u", si->index); + pa_sink_input_kill(si); } } } @@ -533,7 +533,8 @@ static void handle_sound_stop(DBusConnection *conn, DBusMessage *msg, void *user pa_xfree(i); } } - pa_sink_input_unlink(si); + + pa_sink_input_kill(si); pa_dbus_send_empty_reply(conn, msg); }