summaryrefslogtreecommitdiff
path: root/src/lib/irm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/irm.c')
-rw-r--r--src/lib/irm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/irm.c b/src/lib/irm.c
index 6b296258..93963eb1 100644
--- a/src/lib/irm.c
+++ b/src/lib/irm.c
@@ -29,6 +29,7 @@
#include <ouroboros/sockets.h>
#include <stdlib.h>
+#include <sys/stat.h>
pid_t irm_create_ipcp(char * name,
enum ipcp_type ipcp_type)
@@ -246,10 +247,17 @@ int irm_bind(char * name,
irm_msg_t msg = IRM_MSG__INIT;
irm_msg_t * recv_msg = NULL;
int ret = -1;
+ struct stat s;
if (name == NULL || ap_name == NULL)
return -EINVAL;
+ if (stat(ap_name, &s) != 0)
+ return -ENOENT;
+
+ if (!(s.st_mode & S_IXUSR))
+ return -EPERM;
+
msg.code = IRM_MSG_CODE__IRM_BIND;
msg.dst_name = name;
msg.ap_name = ap_name;