From 4a073b1a5a3a4742a67485c71298944bb66cc50b Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Mon, 1 Dec 2008 18:11:38 -0300 Subject: Disallow Serial.Disconnect from unauthorized senders. --- serial/port.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/serial/port.c b/serial/port.c index c83c84b6..9b58f212 100644 --- a/serial/port.c +++ b/serial/port.c @@ -386,7 +386,7 @@ static DBusMessage *port_disconnect(DBusConnection *conn, { struct serial_device *device = user_data; struct serial_port *port; - const char *dev; + const char *dev, *owner, *caller; if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &dev, DBUS_TYPE_INVALID) == FALSE) @@ -399,6 +399,11 @@ static DBusMessage *port_disconnect(DBusConnection *conn, if (!port->listener_id) return failed(msg, "Not connected"); + owner = dbus_message_get_sender(port->msg); + caller = dbus_message_get_sender(msg); + if (!g_str_equal(owner, caller)) + return failed(msg, "Operation not permited"); + if (port->id >= 0) port_release(port); -- cgit