-rw-r--r-- | src/dudki.cc | 2 | ||||
-rw-r--r-- | src/process.cc | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/dudki.cc b/src/dudki.cc index 91a3342..1f95be4 100644 --- a/src/dudki.cc +++ b/src/dudki.cc | |||
@@ -2,12 +2,14 @@ | |||
2 | #include <signal.h> | 2 | #include <signal.h> |
3 | #include <syslog.h> | 3 | #include <syslog.h> |
4 | #include <errno.h> | 4 | #include <errno.h> |
5 | #include <iostream> | 5 | #include <iostream> |
6 | #include <fstream> | 6 | #include <fstream> |
7 | #include <stdexcept> | 7 | #include <stdexcept> |
8 | #include <cstring> | ||
9 | #include <stdlib.h> | ||
8 | using namespace std; | 10 | using namespace std; |
9 | #include "configuration.h" | 11 | #include "configuration.h" |
10 | #include "util.h" | 12 | #include "util.h" |
11 | 13 | ||
12 | #include "config.h" | 14 | #include "config.h" |
13 | #ifdef HAVE_GETOPT_H | 15 | #ifdef HAVE_GETOPT_H |
diff --git a/src/process.cc b/src/process.cc index 4807b98..3e9cc2b 100644 --- a/src/process.cc +++ b/src/process.cc | |||
@@ -4,12 +4,13 @@ | |||
4 | #include <signal.h> | 4 | #include <signal.h> |
5 | #include <pwd.h> | 5 | #include <pwd.h> |
6 | #include <grp.h> | 6 | #include <grp.h> |
7 | #include <dirent.h> | 7 | #include <dirent.h> |
8 | #include <sys/wait.h> | 8 | #include <sys/wait.h> |
9 | #include <syslog.h> | 9 | #include <syslog.h> |
10 | #include <stdlib.h> | ||
10 | #include <errno.h> | 11 | #include <errno.h> |
11 | #include <iostream> | 12 | #include <iostream> |
12 | #include <fstream> | 13 | #include <fstream> |
13 | #include <sstream> | 14 | #include <sstream> |
14 | #include <stdexcept> | 15 | #include <stdexcept> |
15 | #include <string> | 16 | #include <string> |
@@ -109,13 +110,13 @@ void process::launch(const string& id,configuration& config) { | |||
109 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to chroot()"); | 110 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to chroot()"); |
110 | } | 111 | } |
111 | if(!user.empty()) { | 112 | if(!user.empty()) { |
112 | if((getuid()!=uid) && setuid(uid)) | 113 | if((getuid()!=uid) && setuid(uid)) |
113 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setuid()"); | 114 | throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setuid()"); |
114 | } | 115 | } |
115 | char *argv[] = { "/bin/sh", "-c", (char*)restart_cmd.c_str(), NULL }; | 116 | char *argv[] = { const_cast<char*>("/bin/sh"), const_cast<char*>("-c"), (char*)restart_cmd.c_str(), NULL }; |
116 | close(0); close(1); close(2); | 117 | close(0); close(1); close(2); |
117 | execv("/bin/sh",argv); | 118 | execv("/bin/sh",argv); |
118 | }catch(exception& e) { | 119 | }catch(exception& e) { |
119 | syslog(LOG_ERR,"Error trying to launch process '%s': %s",id.c_str(),e.what()); | 120 | syslog(LOG_ERR,"Error trying to launch process '%s': %s",id.c_str(),e.what()); |
120 | } | 121 | } |
121 | _exit(-1); | 122 | _exit(-1); |