From 978bea5902ece9b9f01d1d6525dbe0889a410ffc Mon Sep 17 00:00:00 2001 From: Sumit Bose Date: Tue, 16 Feb 2010 15:53:56 +0100 Subject: Check and set permissions on SBUS sockets --- src/sbus/sbus_client.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/sbus/sbus_client.c') diff --git a/src/sbus/sbus_client.c b/src/sbus/sbus_client.c index df5c0712..1c5c1b24 100644 --- a/src/sbus/sbus_client.c +++ b/src/sbus/sbus_client.c @@ -33,12 +33,25 @@ int sbus_client_init(TALLOC_CTX *mem_ctx, { struct sbus_connection *conn = NULL; int ret; + char *filename; /* Validate input */ if (server_address == NULL) { return EINVAL; } + filename = strchr(server_address, '/'); + if (filename == NULL) { + DEBUG(1, ("Unexpected dbus address [%s].\n", server_address)); + return EIO; + } + + ret = check_file(filename, 0, 0, 0600, CHECK_SOCK, NULL); + if (ret != EOK) { + DEBUG(1, ("check_file failed for [%s].\n", filename)); + return EIO; + } + ret = sbus_new_connection(mem_ctx, ev, server_address, intf, &conn); if (ret != EOK) { goto fail; -- cgit