[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