diff options
| author | Ed Maste <emaste@freebsd.org> | 2014-02-04 19:37:15 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@freebsd.org> | 2014-02-04 19:37:15 +0000 |
| commit | 441a1beaba29119543e68aca7c4650e28e776b28 (patch) | |
| tree | d891f1073218b75cff53059d183f8b10418d18dc /lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp | |
| parent | 0f86e6e711b81958e690b00101fe4dad3c9a1ad4 (diff) | |
If setgid fails for any reason, exit lldb.
This is SVN r191618 by Sylvestre Ledru applied to the FreeBSD
ProcessMonitor.
llvm-svn: 200791
Diffstat (limited to 'lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp')
| -rw-r--r-- | lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp b/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp index d5179967f379..3b260538b190 100644 --- a/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp @@ -896,7 +896,8 @@ ProcessMonitor::Launch(LaunchArgs *args) eDupStdoutFailed, eDupStderrFailed, eChdirFailed, - eExecFailed + eExecFailed, + eSetGidFailed }; // Child process. @@ -907,7 +908,8 @@ ProcessMonitor::Launch(LaunchArgs *args) exit(ePtraceFailed); // Do not inherit setgid powers. - setgid(getgid()); + if (setgid(getgid()) != 0) + exit(eSetGidFailed); // Let us have our own process group. setpgid(0, 0); @@ -972,6 +974,9 @@ ProcessMonitor::Launch(LaunchArgs *args) case eExecFailed: args->m_error.SetErrorString("Child exec failed."); break; + case eSetGidFailed: + args->m_error.SetErrorString("Child setgid failed."); + break; default: args->m_error.SetErrorString("Child returned unknown exit status."); break; |
