summaryrefslogtreecommitdiffstats
path: root/src/sbus/sbus_client.c
diff options
context:
space:
mode:
authorSumit Bose <sbose@redhat.com>2010-02-16 15:53:56 +0100
committerStephen Gallagher <sgallagh@redhat.com>2010-02-23 16:16:23 -0500
commit978bea5902ece9b9f01d1d6525dbe0889a410ffc (patch)
treed83a94851cb6e3fe10fdbfcee1757190c15ab4eb /src/sbus/sbus_client.c
parente0bb119bdc1549d731f371202428c0cb667d3388 (diff)
downloadsssd_unused-978bea5902ece9b9f01d1d6525dbe0889a410ffc.tar.gz
sssd_unused-978bea5902ece9b9f01d1d6525dbe0889a410ffc.tar.xz
sssd_unused-978bea5902ece9b9f01d1d6525dbe0889a410ffc.zip
Check and set permissions on SBUS sockets
Diffstat (limited to 'src/sbus/sbus_client.c')
-rw-r--r--src/sbus/sbus_client.c13
1 files changed, 13 insertions, 0 deletions
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;