osaf/libs/core/common/daemon.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/osaf/libs/core/common/daemon.c b/osaf/libs/core/common/daemon.c
--- a/osaf/libs/core/common/daemon.c
+++ b/osaf/libs/core/common/daemon.c
@@ -48,6 +48,8 @@
#include <sys/types.h>
#include <time.h>
+#include <sys/prctl.h>
+
#define DEFAULT_RUNAS_USERNAME "opensaf"
static const char* internal_version_id_;
@@ -206,6 +208,9 @@ static void __parse_options(int argc, ch
void daemonize(int argc, char *argv[])
{
+#ifndef RUNASROOT
+ static int (*plibc_prctl) (int option, ...) = NULL;
+#endif
pid_t pid, sid;
struct sched_param param;
char *thread_prio;
@@ -349,6 +354,13 @@ void daemonize(int argc, char *argv[])
syslog(LOG_ERR, "setuid failed, uid=%d (%s)",
pw->pw_uid, strerror(errno));
exit(EXIT_FAILURE);
}
+ // Enable generating core files
+ plibc_prctl = dlsym(RTLD_DEFAULT, "prctl");
+ if (plibc_prctl) {
+ if (plibc_prctl(PR_SET_DUMPABLE, 1) < 0) {
+ syslog(LOG_ERR, "prctl failed: %s",
strerror(errno));
+ }
+ }
} else {
syslog(LOG_ERR, "invalid user name %s",
__runas_username);
exit(EXIT_FAILURE);
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel