mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-05 13:29:57 -05:00
Plug some memory leaks
These were detected with valgrind.
This commit is contained in:
parent
1e4298be4d
commit
3b76d8065f
4 changed files with 10 additions and 2 deletions
|
|
@ -231,6 +231,7 @@ int pa__init(pa_module *m) {
|
||||||
pa_log("Failed to parse connect= argument.");
|
pa_log("Failed to parse connect= argument.");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
pa_modargs_free(ma);
|
||||||
|
|
||||||
if (!(connection = pa_dbus_bus_get(m->core, DBUS_BUS_SESSION, &error)) || dbus_error_is_set(&error)) {
|
if (!(connection = pa_dbus_bus_get(m->core, DBUS_BUS_SESSION, &error)) || dbus_error_is_set(&error)) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -199,6 +199,7 @@ static void entry_free(struct entry* e) {
|
||||||
|
|
||||||
pa_xfree(e->description);
|
pa_xfree(e->description);
|
||||||
pa_xfree(e->icon);
|
pa_xfree(e->icon);
|
||||||
|
pa_xfree(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
static pa_bool_t entry_write(struct userdata *u, const char *name, const struct entry *e) {
|
static pa_bool_t entry_write(struct userdata *u, const char *name, const struct entry *e) {
|
||||||
|
|
@ -769,8 +770,6 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
|
||||||
t != (PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_CHANGE))
|
t != (PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_CHANGE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
entry = entry_new();
|
|
||||||
|
|
||||||
if ((t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) == PA_SUBSCRIPTION_EVENT_SINK_INPUT) {
|
if ((t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) == PA_SUBSCRIPTION_EVENT_SINK_INPUT) {
|
||||||
pa_sink_input *si;
|
pa_sink_input *si;
|
||||||
|
|
||||||
|
|
@ -801,6 +800,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
|
||||||
if (!(sink = pa_idxset_get_by_index(c->sinks, idx)))
|
if (!(sink = pa_idxset_get_by_index(c->sinks, idx)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
entry = entry_new();
|
||||||
name = pa_sprintf_malloc("sink:%s", sink->name);
|
name = pa_sprintf_malloc("sink:%s", sink->name);
|
||||||
|
|
||||||
old = load_or_initialize_entry(u, entry, name, "sink:");
|
old = load_or_initialize_entry(u, entry, name, "sink:");
|
||||||
|
|
@ -830,6 +830,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
|
||||||
if (source->monitor_of)
|
if (source->monitor_of)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
entry = entry_new();
|
||||||
name = pa_sprintf_malloc("source:%s", source->name);
|
name = pa_sprintf_malloc("source:%s", source->name);
|
||||||
|
|
||||||
old = load_or_initialize_entry(u, entry, name, "source:");
|
old = load_or_initialize_entry(u, entry, name, "source:");
|
||||||
|
|
@ -847,6 +848,8 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
|
||||||
|
|
||||||
pa_xfree(entry->icon);
|
pa_xfree(entry->icon);
|
||||||
entry->icon = pa_xstrdup(pa_proplist_gets(source->proplist, PA_PROP_DEVICE_ICON_NAME));
|
entry->icon = pa_xstrdup(pa_proplist_gets(source->proplist, PA_PROP_DEVICE_ICON_NAME));
|
||||||
|
} else {
|
||||||
|
pa_assert_not_reached();
|
||||||
}
|
}
|
||||||
|
|
||||||
pa_assert(name);
|
pa_assert(name);
|
||||||
|
|
|
||||||
|
|
@ -661,6 +661,7 @@ int pa__init(pa_module*m) {
|
||||||
|
|
||||||
u->sink_memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL);
|
u->sink_memblockq = pa_memblockq_new(0, MEMBLOCKQ_MAXLENGTH, 0, pa_frame_size(&ss), 1, 1, 0, NULL);
|
||||||
if (!u->sink_memblockq) {
|
if (!u->sink_memblockq) {
|
||||||
|
pa_sink_new_data_done(&sink_data);
|
||||||
pa_log("Failed to create sink memblockq.");
|
pa_log("Failed to create sink memblockq.");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
@ -689,6 +690,7 @@ int pa__init(pa_module*m) {
|
||||||
|
|
||||||
pa_sink_put(u->sink);
|
pa_sink_put(u->sink);
|
||||||
} else {
|
} else {
|
||||||
|
pa_sink_new_data_done(&sink_data);
|
||||||
/* optional uplink sink not enabled */
|
/* optional uplink sink not enabled */
|
||||||
u->sink = NULL;
|
u->sink = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -385,6 +385,8 @@ void pa_raop_client_free(pa_raop_client* c) {
|
||||||
|
|
||||||
if (c->rtsp)
|
if (c->rtsp)
|
||||||
pa_rtsp_client_free(c->rtsp);
|
pa_rtsp_client_free(c->rtsp);
|
||||||
|
if (c->sid)
|
||||||
|
pa_xfree(c->sid);
|
||||||
pa_xfree(c->host);
|
pa_xfree(c->host);
|
||||||
pa_xfree(c);
|
pa_xfree(c);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue