diff options
Diffstat (limited to 'src/sbus/sbus_client.c')
-rw-r--r-- | src/sbus/sbus_client.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/sbus/sbus_client.c b/src/sbus/sbus_client.c index df5c07120..1c5c1b24a 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; |