diff options
author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-07-03 15:56:03 +0200 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-07-03 15:56:03 +0200 |
commit | d6449cd5ecc6a557eb25c9ed2048e3aa652da629 (patch) | |
tree | 2dfdf933694cd6c6c74d9b6d8c4fc7d69b3aa450 /src/irmd/main.c | |
parent | d2a7cb2d27dab595bd2948ad3724016ca948e61e (diff) | |
parent | 9a255c8ff98815cc1c6d0b39c19e8ee2afbb587c (diff) | |
download | ouroboros-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/main.c')
-rw-r--r-- | src/irmd/main.c | 14 |
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) { |