raop: Fix double free

make nick variable local, fix double free
Coverity CID: #1398162

Signed-off-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
This commit is contained in:
Peter Meerwald-Stadler 2017-02-22 14:49:48 +01:00
parent 424e97a5fa
commit ad9c8603b0

View file

@ -460,7 +460,6 @@ pa_sink* pa_raop_sink_new(pa_module *m, pa_modargs *ma, const char *driver) {
const char /* *username, */ *password; const char /* *username, */ *password;
pa_sink_new_data data; pa_sink_new_data data;
const char *name = NULL; const char *name = NULL;
char * nick = NULL;
pa_assert(m); pa_assert(m);
pa_assert(ma); pa_assert(ma);
@ -550,9 +549,11 @@ pa_sink* pa_raop_sink_new(pa_module *m, pa_modargs *ma, const char *driver) {
if ((name = pa_modargs_get_value(ma, "sink_name", NULL))) { if ((name = pa_modargs_get_value(ma, "sink_name", NULL))) {
pa_sink_new_data_set_name(&data, name); pa_sink_new_data_set_name(&data, name);
} else { } else {
char *nick;
if ((name = pa_modargs_get_value(ma, "name", NULL))) if ((name = pa_modargs_get_value(ma, "name", NULL)))
nick = pa_sprintf_malloc("raop_client.%s", name); nick = pa_sprintf_malloc("raop_client.%s", name);
if (!nick) else
nick = pa_sprintf_malloc("raop_client.%s", server); nick = pa_sprintf_malloc("raop_client.%s", server);
pa_sink_new_data_set_name(&data, nick); pa_sink_new_data_set_name(&data, nick);
pa_xfree(nick); pa_xfree(nick);
@ -618,7 +619,6 @@ pa_sink* pa_raop_sink_new(pa_module *m, pa_modargs *ma, const char *driver) {
fail: fail:
pa_xfree(thread_name); pa_xfree(thread_name);
pa_xfree(nick);
if (u) if (u)
userdata_free(u); userdata_free(u);