s3:popt_common: use cmdline_messaging_context() in popt_common_credentials_callback()
authorRalph Boehme <slow@samba.org>
Tue, 10 Jul 2018 13:26:40 +0000 (15:26 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 7 Sep 2018 15:26:15 +0000 (17:26 +0200)
This adds a call to cmdline_messaging_context() to the popt
popt_common_credentials_callback() hook and ensures that any client tool
that uses POPT_COMMON_CREDENTIALS gets an implicit messaging context,
ensuring it doesn't crash in the subsequent lp_load_client() with
include=registry in a cluster.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13465

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Christof Schmitt <cs@samba.org>
source3/lib/popt_common_cmdline.c
source3/wscript_build

index 57f77e0868aa4e6be0737f3a1b7476eb384d006e..d1ba90dd43eaa520038b6435098ceaaf915a3b5b 100644 (file)
@@ -35,6 +35,7 @@
 #include "popt_common_cmdline.h"
 #include "includes.h"
 #include "auth_info.h"
+#include "cmdline_contexts.h"
 
 static struct user_auth_info *cmdline_auth_info;
 
@@ -101,8 +102,15 @@ static void popt_common_credentials_callback(poptContext con,
        }
 
        if (reason == POPT_CALLBACK_REASON_POST) {
+               struct messaging_context *msg_ctx = NULL;
                bool ok;
 
+               msg_ctx = cmdline_messaging_context(get_dyn_CONFIGFILE());
+               if (msg_ctx == NULL) {
+                       fprintf(stderr, "Unable to initialize "
+                               "messaging context\n");
+               }
+
                ok = lp_load_client(get_dyn_CONFIGFILE());
                if (!ok) {
                        const char *pname = poptGetInvocationName(con);
index 5f6fce391c49e3d9120b139950ffcb4f87a66d8e..9c6200a2b74f8781ba507fc5b0b668d23b91773f 100644 (file)
@@ -270,7 +270,7 @@ bld.SAMBA3_LIBRARY('popt_samba3',
 
 bld.SAMBA3_LIBRARY('popt_samba3_cmdline',
                    source='lib/popt_common_cmdline.c',
-                   deps='popt_samba3 util_cmdline',
+                   deps='popt_samba3 util_cmdline cmdline_contexts',
                    private_library=True)
 
 bld.SAMBA3_LIBRARY('util_cmdline',