summaryrefslogtreecommitdiffstats
path: root/src/sbus/sbus_client.c
diff options
context:
space:
mode:
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 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;