From: Andrew Tridgell Date: Tue, 21 Dec 2010 01:42:23 +0000 (+1100) Subject: s4-dns: disable segfault handling in dlz_bind9 X-Git-Tag: samba-4.0.0alpha14~64 X-Git-Url: http://git.samba.org/samba.git/?a=commitdiff_plain;h=da5c328b4b4a793053a8b1c942ceda56da01625c;p=gd%2Fsamba-autobuild%2F.git s4-dns: disable segfault handling in dlz_bind9 we don't want bind9 calling the Samba segv handler --- diff --git a/lib/util/fault.c b/lib/util/fault.c index bbb3190198f..256e55a85bc 100644 --- a/lib/util/fault.c +++ b/lib/util/fault.c @@ -187,9 +187,10 @@ setup our fault handlers **/ _PUBLIC_ void fault_setup(const char *pname) { - if (progname == NULL) { - progname = pname; + if (progname != NULL) { + return; } + progname = pname; #ifdef SIGSEGV CatchSignal(SIGSEGV, sig_fault); #endif @@ -204,6 +205,15 @@ _PUBLIC_ void fault_setup(const char *pname) #endif } +/** + disable setting up fault handlers +**/ +_PUBLIC_ void fault_setup_disable(void) +{ + progname = "fault disabled"; +} + + /** register a fault handler. Should only be called once in the execution of smbd. diff --git a/lib/util/util.h b/lib/util/util.h index 0073aa90513..86bb3daace3 100644 --- a/lib/util/util.h +++ b/lib/util/util.h @@ -87,6 +87,7 @@ _PUBLIC_ _NORETURN_ void smb_panic(const char *why); setup our fault handlers **/ _PUBLIC_ void fault_setup(const char *pname); +_PUBLIC_ void fault_setup_disable(void); #endif /** diff --git a/source4/dns_server/dlz_bind9.c b/source4/dns_server/dlz_bind9.c index dc4c4bcd1e1..931f2f30b62 100644 --- a/source4/dns_server/dlz_bind9.c +++ b/source4/dns_server/dlz_bind9.c @@ -413,6 +413,8 @@ static isc_result_t parse_options(struct dlz_bind9_data *state, struct poptOption **popt_options; int ret; + fault_setup_disable(); + popt_options = ldb_module_popt_options(state->samdb); (*popt_options) = long_options;