Fix crash in jack_proxy
This was caused by using uninitialized DBusError. g_dbus_error should be used instead.
This commit is contained in:
parent
9a47ef6a66
commit
667a5830c0
|
@ -2,7 +2,7 @@
|
|||
/*
|
||||
* LADI Session Handler (ladish)
|
||||
*
|
||||
* Copyright (C) 2008 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name>
|
||||
* Copyright (C) 2008 Juuso Alasuutari <juuso.alasuutari@gmail.com>
|
||||
*
|
||||
**************************************************************************
|
||||
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "method.h"
|
||||
#include "service.h"
|
||||
#include "helpers.h"
|
||||
|
||||
/*
|
||||
* Construct a void method return.
|
||||
|
@ -210,17 +211,14 @@ method_return_verify(DBusMessage *msg,
|
|||
if (!msg || dbus_message_get_type(msg) != DBUS_MESSAGE_TYPE_ERROR)
|
||||
return true;
|
||||
|
||||
DBusError err;
|
||||
const char *ptr;
|
||||
|
||||
dbus_error_init(&err);
|
||||
|
||||
if (!dbus_message_get_args(msg, &err,
|
||||
if (!dbus_message_get_args(msg, &g_dbus_error,
|
||||
DBUS_TYPE_STRING, &ptr,
|
||||
DBUS_TYPE_INVALID)) {
|
||||
lash_error("Cannot read description from D-Bus error message: %s ",
|
||||
err.message);
|
||||
dbus_error_free(&err);
|
||||
g_dbus_error.message);
|
||||
dbus_error_free(&g_dbus_error);
|
||||
ptr = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "../common/safety.h"
|
||||
#include "../common/debug.h"
|
||||
#include "service.h"
|
||||
#include "helpers.h"
|
||||
|
||||
service_t *
|
||||
service_new(const char *service_name,
|
||||
|
@ -47,7 +48,6 @@ service_new(const char *service_name,
|
|||
lash_debug("Creating D-Bus service");
|
||||
|
||||
service_t *service;
|
||||
DBusError err;
|
||||
int r;
|
||||
va_list argp;
|
||||
object_path_t **path_pptr, *path_ptr;
|
||||
|
@ -56,11 +56,9 @@ service_new(const char *service_name,
|
|||
service->object_paths = lash_calloc(num_paths + 1,
|
||||
sizeof(object_path_t *));
|
||||
|
||||
dbus_error_init(&err);
|
||||
|
||||
service->connection = dbus_bus_get(DBUS_BUS_SESSION, &err);
|
||||
if (dbus_error_is_set(&err)) {
|
||||
lash_error("Failed to get bus: %s", err.message);
|
||||
service->connection = dbus_bus_get(DBUS_BUS_SESSION, &g_dbus_error);
|
||||
if (dbus_error_is_set(&g_dbus_error)) {
|
||||
lash_error("Failed to get bus: %s", g_dbus_error.message);
|
||||
goto fail_free_err;
|
||||
}
|
||||
|
||||
|
@ -72,9 +70,9 @@ service_new(const char *service_name,
|
|||
if (service_name) {
|
||||
r = dbus_bus_request_name(service->connection, service_name,
|
||||
DBUS_NAME_FLAG_DO_NOT_QUEUE,
|
||||
&err);
|
||||
&g_dbus_error);
|
||||
if (r == -1) {
|
||||
lash_error("Failed to acquire bus name: %s", err.message);
|
||||
lash_error("Failed to acquire bus name: %s", g_dbus_error.message);
|
||||
goto fail_free_err;
|
||||
} else if (r == DBUS_REQUEST_NAME_REPLY_EXISTS) {
|
||||
lash_error("Requested bus name already exists");
|
||||
|
@ -106,7 +104,7 @@ service_new(const char *service_name,
|
|||
return service;
|
||||
|
||||
fail_free_err:
|
||||
dbus_error_free(&err);
|
||||
dbus_error_free(&g_dbus_error);
|
||||
|
||||
fail:
|
||||
lash_free(&service->object_paths);
|
||||
|
|
17
jack_proxy.c
17
jack_proxy.c
|
@ -190,7 +190,6 @@ jack_proxy_init(
|
|||
jack_proxy_callback_server_appeared server_appeared,
|
||||
jack_proxy_callback_server_disappeared server_disappeared)
|
||||
{
|
||||
DBusError err;
|
||||
char rule[1024];
|
||||
const char ** signal;
|
||||
|
||||
|
@ -202,11 +201,11 @@ jack_proxy_init(
|
|||
dbus_bus_add_match(
|
||||
g_dbus_connection,
|
||||
"type='signal',interface='"DBUS_INTERFACE_DBUS"',member=NameOwnerChanged,arg0='"JACKDBUS_SERVICE_NAME"'",
|
||||
&err);
|
||||
if (dbus_error_is_set(&err))
|
||||
&g_dbus_error);
|
||||
if (dbus_error_is_set(&g_dbus_error))
|
||||
{
|
||||
lash_error("Failed to add D-Bus match rule: %s", err.message);
|
||||
dbus_error_free(&err);
|
||||
lash_error("Failed to add D-Bus match rule: %s", g_dbus_error.message);
|
||||
dbus_error_free(&g_dbus_error);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -218,11 +217,11 @@ jack_proxy_init(
|
|||
"type='signal',sender='"JACKDBUS_SERVICE_NAME"',path='"JACKDBUS_OBJECT_PATH"',interface='"JACKDBUS_IFACE_CONTROL"',member='%s'",
|
||||
*signal);
|
||||
|
||||
dbus_bus_add_match(g_dbus_connection, rule, &err);
|
||||
if (dbus_error_is_set(&err))
|
||||
dbus_bus_add_match(g_dbus_connection, rule, &g_dbus_error);
|
||||
if (dbus_error_is_set(&g_dbus_error))
|
||||
{
|
||||
lash_error("Failed to add D-Bus match rule: %s", err.message);
|
||||
dbus_error_free(&err);
|
||||
lash_error("Failed to add D-Bus match rule: %s", g_dbus_error.message);
|
||||
dbus_error_free(&g_dbus_error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue