Fix memory issues reported by clang static analyzer (#7)

* Fix use after free in error path

Memory pointed by 'handle' is used in error path but it is freed before jumping to interface_failed. Remove the wrong free. Memory pointed by 'handle' gets freed in the error handling path.

* Free 'bus' when dbus_bus_get_private fails

If dbus_bus_get_private fails memory pointed by 'bus' is never freed. Free it.

* Free 'impl' if dbus_bus_get_private fails

When dbus_bus_get_private fails the memory pointed by 'impl' is not freed. Free it.
This commit is contained in:
PrasannaKumar Muralidharan 2017-09-04 14:39:45 +05:30 committed by Wim Taymans
parent ff363cc7bf
commit f6d480fdfd
3 changed files with 2 additions and 1 deletions

View file

@ -778,6 +778,7 @@ static bool module_init(struct pw_module *module, struct pw_properties *properti
return true;
error:
free(impl);
pw_log_error("Failed to connect to system bus: %s", error.message);
dbus_error_free(&error);
return false;

View file

@ -272,7 +272,6 @@ struct pw_spa_monitor *pw_spa_monitor_load(struct pw_core *core,
goto init_failed;
}
if ((res = spa_handle_get_interface(handle, t->spa_monitor, &iface)) < 0) {
free(handle);
pw_log_error("can't get MONITOR interface: %d", res);
goto interface_failed;
}

View file

@ -77,6 +77,7 @@ struct pw_rtkit_bus *pw_rtkit_bus_get_system(void)
return bus;
error:
free(bus);
pw_log_error("Failed to connect to system bus: %s", error.message);
dbus_error_free(&error);
return NULL;