diff options
Diffstat (limited to 'network/server.c')
| -rw-r--r-- | network/server.c | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/network/server.c b/network/server.c index 02ad8edf..5cfb332e 100644 --- a/network/server.c +++ b/network/server.c @@ -81,16 +81,21 @@ static DBusHandlerResult set_name(DBusConnection *conn,  {  	struct network_server *ns = data;  	DBusMessage *reply; +	DBusError derr;  	const char *name;  	reply = dbus_message_new_method_return(msg);  	if (!reply)  		return DBUS_HANDLER_RESULT_NEED_MEMORY; -	if (!dbus_message_get_args(msg, NULL, +	dbus_error_init(&derr); +	if (!dbus_message_get_args(msg, &derr,  				DBUS_TYPE_STRING, &name, -				DBUS_TYPE_INVALID)) -		return err_invalid_args(conn, msg, "Invalid name"); +				DBUS_TYPE_INVALID)) { +		err_invalid_args(conn, msg, derr.message); +		dbus_error_free(&derr); +		return DBUS_HANDLER_RESULT_HANDLED; +	}  	if (!name || (strlen(name) == 0))  		return err_invalid_args(conn, msg, "Invalid name"); | 
