dbus: Do not deinitialize new D-Bus API if it is not initialized
This fixes a crash on error path when D-Bus initialization fails.
This commit is contained in:
parent
8ddef94bd4
commit
26e054ce6b
2 changed files with 5 additions and 0 deletions
|
@ -24,6 +24,7 @@ struct wpas_dbus_priv {
|
||||||
int should_dispatch;
|
int should_dispatch;
|
||||||
struct wpa_global *global;
|
struct wpa_global *global;
|
||||||
u32 next_objid;
|
u32 next_objid;
|
||||||
|
int dbus_new_initialized;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* DBUS_COMMON_I_H */
|
#endif /* DBUS_COMMON_I_H */
|
||||||
|
|
|
@ -1070,6 +1070,8 @@ int wpas_dbus_ctrl_iface_init(struct wpas_dbus_priv *priv)
|
||||||
obj_desc);
|
obj_desc);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
free_dbus_object_desc(obj_desc);
|
free_dbus_object_desc(obj_desc);
|
||||||
|
else
|
||||||
|
priv->dbus_new_initialized = 1;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1085,6 +1087,8 @@ int wpas_dbus_ctrl_iface_init(struct wpas_dbus_priv *priv)
|
||||||
*/
|
*/
|
||||||
void wpas_dbus_ctrl_iface_deinit(struct wpas_dbus_priv *iface)
|
void wpas_dbus_ctrl_iface_deinit(struct wpas_dbus_priv *iface)
|
||||||
{
|
{
|
||||||
|
if (!iface->dbus_new_initialized)
|
||||||
|
return;
|
||||||
wpa_printf(MSG_DEBUG, "dbus: Unregister D-Bus object '%s'",
|
wpa_printf(MSG_DEBUG, "dbus: Unregister D-Bus object '%s'",
|
||||||
WPAS_DBUS_NEW_PATH);
|
WPAS_DBUS_NEW_PATH);
|
||||||
dbus_connection_unregister_object_path(iface->con,
|
dbus_connection_unregister_object_path(iface->con,
|
||||||
|
|
Loading…
Reference in a new issue