[PATCH] Fix bug 13465

Jeremy Allison jra at samba.org
Fri Jul 6 23:19:22 UTC 2018


On Thu, Jul 05, 2018 at 05:00:53PM +0200, Ralph Böhme via samba-technical wrote:
> Hi!
> 
> Attached is a fix for bug 13465. Please review&push if happy. Thanks!

LGTM. RB+ and pushed.

Jeremy.

> -- 
> Ralph Boehme, Samba Team       https://samba.org/
> Samba Developer, SerNet GmbH   https://sernet.de/en/samba/
> GPG Key Fingerprint:           FAE2 C608 8A24 2520 51C5
>                               59E4 AA1E 9B71 2639 9E46

> From 2b9c4772386e12fb39673e31f01aab1f0fc157c4 Mon Sep 17 00:00:00 2001
> From: Ralph Boehme <slow at samba.org>
> Date: Thu, 5 Jul 2018 14:38:59 +0200
> Subject: [PATCH] s3: testparm: initialize messaging, needed for registry
>  config
> 
> This fixes a crash triggered by running testparm with registry config
> enabled in smb.conf, eg by "include = registry".
> 
> Registry config calls db_open() and that requires messaging to be up and
> running on a cluster.
> 
> Bug: https://bugzilla.samba.org/show_bug.cgi?id=13465
> 
> Signed-off-by: Ralph Boehme <slow at samba.org>
> ---
>  source3/utils/testparm.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c
> index 8113eea0020..61940959f84 100644
> --- a/source3/utils/testparm.c
> +++ b/source3/utils/testparm.c
> @@ -35,6 +35,7 @@
>  #include "system/filesys.h"
>  #include "popt_common.h"
>  #include "lib/param/loadparm.h"
> +#include "messages.h"
>  
>  #include <regex.h>
>  
> @@ -646,6 +647,8 @@ static void do_per_share_checks(int s)
>  	const char *caddr;
>  	static int show_defaults;
>  	static int skip_logic_checks = 0;
> +	struct tevent_context *ev = NULL;
> +	struct messaging_context *msg_ctx = NULL;
>  
>  	struct poptOption long_options[] = {
>  		POPT_AUTOHELP
> @@ -698,6 +701,27 @@ static void do_per_share_checks(int s)
>  		goto done;
>  	}
>  
> +	if (!lp_load_initial_only(get_dyn_CONFIGFILE())) {
> +		fprintf(stderr, "Can't load %s - run testparm to debug it\n",
> +			get_dyn_CONFIGFILE());
> +		ret = -1;
> +		goto done;
> +	}
> +
> +	ev = samba_tevent_context_init(frame);
> +	if (ev == NULL) {
> +		fprintf(stderr, "samba_tevent_context_init failed\n");
> +		ret = -1;
> +		goto done;
> +	}
> +
> +	msg_ctx = messaging_init(ev, ev);
> +	if (msg_ctx == NULL) {
> +		fprintf(stderr, "messaging_init failed\n");
> +		ret = -1;
> +		goto done;
> +	}
> +
>  	fprintf(stderr,"Load smb config files from %s\n",config_file);
>  
>  	if (!lp_load_with_registry_shares(config_file)) {
> -- 
> 2.13.6
> 




More information about the samba-technical mailing list