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) (side-by-side diff) | |
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 @@ -1,21 +1,22 @@ #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <signal.h> #include <pwd.h> #include <grp.h> #include <dirent.h> #include <sys/wait.h> #include <syslog.h> +#include <stdlib.h> #include <errno.h> #include <iostream> #include <fstream> #include <sstream> #include <stdexcept> #include <string> #include <vector> using namespace std; #include "process.h" #include "configuration.h" static multimap<string,pid_t> procpids; @@ -103,25 +104,25 @@ void process::launch(const string& id,configuration& config) { if(initgroups(user.c_str(),gid)) throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to initgroups()"); } } if(!chroot.empty()) { if(::chroot(chroot.c_str())) throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to chroot()"); } if(!user.empty()) { if((getuid()!=uid) && setuid(uid)) throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setuid()"); } - char *argv[] = { "/bin/sh", "-c", (char*)restart_cmd.c_str(), NULL }; + char *argv[] = { const_cast<char*>("/bin/sh"), const_cast<char*>("-c"), (char*)restart_cmd.c_str(), NULL }; close(0); close(1); close(2); execv("/bin/sh",argv); }catch(exception& e) { syslog(LOG_ERR,"Error trying to launch process '%s': %s",id.c_str(),e.what()); } _exit(-1); } // parent int rv; if(waitpid(p,&rv,0)<0) throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to waitpid()"); } |