Make sure that PR_SET_DUMPABLE is set to make certain that we still dump core if...
authorBJ Weschke <bweschke@btwtech.com>
Tue, 14 Feb 2006 02:41:42 +0000 (02:41 +0000)
committerBJ Weschke <bweschke@btwtech.com>
Tue, 14 Feb 2006 02:41:42 +0000 (02:41 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@9844 65c4cc65-6c06-0410-ace0-fbb531ad65f3

asterisk.c

index acdaca6..0da54a2 100644 (file)
@@ -74,6 +74,7 @@
 #include <grp.h>
 #include <pwd.h>
 #include <sys/stat.h>
+#include <sys/prctl.h>
 #include <regex.h>
 
 #if  defined(__FreeBSD__) || defined( __NetBSD__ ) || defined(SOLARIS)
@@ -2191,6 +2192,12 @@ int main(int argc, char *argv[])
 
 #endif /* __CYGWIN__ */
 
+       if (geteuid() && ast_opt_dump_core) {
+               if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) < 0) {
+                       ast_log(LOG_WARNING, "Unable to set the process for core dumps after changing to a non-root user. %s\n", strerror(errno));
+               }       
+       }
+
        term_init();
        printf(term_end());
        fflush(stdout);