author | Michael Krelin <hacker@klever.net> | 2011-10-10 21:26:52 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2011-10-12 19:22:51 (UTC) |
commit | 970337c91c02afa9b8d33ab5596270594ffe58e6 (patch) (unidiff) | |
tree | 198e49630826aea7289f60635f52ccb2476d36cc /src/process.cc | |
parent | 6a68fcae465905e904eea248ffe6b1ed6b8297a4 (diff) | |
download | dudki-970337c91c02afa9b8d33ab5596270594ffe58e6.zip dudki-970337c91c02afa9b8d33ab5596270594ffe58e6.tar.gz dudki-970337c91c02afa9b8d33ab5596270594ffe58e6.tar.bz2 |
Some work in compiler happiness department.
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | src/process.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/process.cc b/src/process.cc index 4807b98..3e9cc2b 100644 --- a/src/process.cc +++ b/src/process.cc | |||
@@ -2,16 +2,17 @@ | |||
2 | #include <sys/types.h> | 2 | #include <sys/types.h> |
3 | #include <unistd.h> | 3 | #include <unistd.h> |
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> |
16 | #include <vector> | 17 | #include <vector> |
17 | using namespace std; | 18 | using namespace std; |
@@ -107,17 +108,17 @@ void process::launch(const string& id,configuration& config) { | |||
107 | if(!chroot.empty()) { | 108 | if(!chroot.empty()) { |
108 | if(::chroot(chroot.c_str())) | 109 | if(::chroot(chroot.c_str())) |
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); |
122 | } | 123 | } |
123 | // parent | 124 | // parent |