summaryrefslogtreecommitdiff
path: root/src/irmd
diff options
context:
space:
mode:
authorSander Vrijders <[email protected]>2016-07-03 15:56:03 +0200
committerSander Vrijders <[email protected]>2016-07-03 15:56:03 +0200
commitd6449cd5ecc6a557eb25c9ed2048e3aa652da629 (patch)
tree2dfdf933694cd6c6c74d9b6d8c4fc7d69b3aa450 /src/irmd
parentd2a7cb2d27dab595bd2948ad3724016ca948e61e (diff)
parent9a255c8ff98815cc1c6d0b39c19e8ee2afbb587c (diff)
downloadouroboros-d6449cd5ecc6a557eb25c9ed2048e3aa652da629.tar.gz
ouroboros-d6449cd5ecc6a557eb25c9ed2048e3aa652da629.zip
Merged in dstaesse/ouroboros/be-bind (pull request #149)
irmd, tools: checks on binary
Diffstat (limited to 'src/irmd')
-rw-r--r--src/irmd/main.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/irmd/main.c b/src/irmd/main.c
index b4771b89..b14aa213 100644
--- a/src/irmd/main.c
+++ b/src/irmd/main.c
@@ -1613,9 +1613,21 @@ static int flow_dealloc(int port_id)
return ret;
}
-static int auto_execute(char ** argv)
+static pid_t auto_execute(char ** argv)
{
pid_t api;
+ struct stat s;
+
+ if (stat(argv[0], &s) != 0) {
+ LOG_WARN("Application %s does not exist.", argv[0]);
+ return -1;
+ }
+
+ if (!(s.st_mode & S_IXUSR)) {
+ LOG_WARN("Application %s is not executable.", argv[0]);
+ return -1;
+ }
+
LOG_INFO("Executing %s.", argv[0]);
api = fork();
if (api == -1) {