s3:lib/util: make sure panic action can attach a debugger on ubuntu (>=10.10)
authorStefan Metzmacher <metze@samba.org>
Tue, 4 Oct 2011 08:47:46 +0000 (10:47 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Oct 2011 10:51:35 +0000 (12:51 +0200)
By default user processes can't attach a debugger to a process.
So explicitly allow that for all child processes, before calling
the panic action script.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Tue Oct  4 12:51:35 CEST 2011 on sn-devel-104

source3/lib/util.c

index 689d41ed17c3bd907f998b5eb3a4028cbc788eeb..887d1849ee8cc1aee0238615f243f75a14dee97f 100644 (file)
 #include <ccan/hash/hash.h>
 #include "libcli/security/security.h"
 
+#ifdef HAVE_SYS_PRCTL_H
+#include <sys/prctl.h>
+#endif
+
 /* Max allowable allococation - 256mb - 0x10000000 */
 #define MAX_ALLOC_SIZE (1024*1024*256)
 
@@ -778,6 +782,13 @@ void smb_panic_s3(const char *why)
                    (unsigned long long)sys_getpid(), why));
        log_stack_trace();
 
+#if defined(HAVE_PRCTL) && defined(PR_SET_PTRACER)
+       /*
+        * Make sure all children can attach a debugger.
+        */
+       prctl(PR_SET_PTRACER, getpid(), 0, 0, 0);
+#endif
+
        cmd = lp_panic_action();
        if (cmd && *cmd) {
                DEBUG(0, ("smb_panic(): calling panic action [%s]\n", cmd));