diff options
author | Jeremy Allison <jra@samba.org> | 2010-12-15 10:57:23 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-12-15 20:45:25 +0100 |
commit | b3630b4739b8cb7cf99e46ae13bbe52819a95750 (patch) | |
tree | f240e128ef8e763f611164b2480d8b3844250ba5 | |
parent | 4a2d39697159c575721dfb3d2ff3940c6259f44b (diff) | |
download | samba-b3630b4739b8cb7cf99e46ae13bbe52819a95750.tar.gz samba-b3630b4739b8cb7cf99e46ae13bbe52819a95750.tar.bz2 samba-b3630b4739b8cb7cf99e46ae13bbe52819a95750.zip |
Fix bug 7866 - "net" in v3-6-test broken.
Someone wasn't careful about testing when not running as root :-).
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Wed Dec 15 20:45:25 CET 2010 on sn-devel-104
-rw-r--r-- | source3/utils/net.c | 6 | ||||
-rw-r--r-- | source3/utils/net_ads.c | 13 | ||||
-rw-r--r-- | source3/utils/net_lookup.c | 6 |
3 files changed, 22 insertions, 3 deletions
diff --git a/source3/utils/net.c b/source3/utils/net.c index 44119dc2c6..13eed2f9ca 100644 --- a/source3/utils/net.c +++ b/source3/utils/net.c @@ -924,11 +924,11 @@ static struct functable net_func[] = { c->opt_password = getenv("PASSWD"); } + /* Failing to init the msg_ctx isn't a fatal error. Only + root-level things (joining/leaving domains etc.) will be denied. */ + c->msg_ctx = messaging_init(c, procid_self(), event_context_init(c)); - if (c->msg_ctx == NULL) { - exit(1); - } rc = net_run_function(c, argc_new-1, argv_new+1, "net", net_func); diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c index 858830f3c1..0b2165d73f 100644 --- a/source3/utils/net_ads.c +++ b/source3/utils/net_ads.c @@ -968,6 +968,12 @@ static int net_ads_leave(struct net_context *c, int argc, const char **argv) use_in_memory_ccache(); } + if (!c->msg_ctx) { + d_fprintf(stderr, _("Could not initialise message context. " + "Try running as root\n")); + return -1; + } + werr = libnet_init_UnjoinCtx(ctx, &r); if (!W_ERROR_IS_OK(werr)) { d_fprintf(stderr, _("Could not initialise unjoin context.\n")); @@ -1348,6 +1354,13 @@ int net_ads_join(struct net_context *c, int argc, const char **argv) goto fail; } + if (!c->msg_ctx) { + d_fprintf(stderr, _("Could not initialise message context. " + "Try running as root\n")); + werr = WERR_ACCESS_DENIED; + goto fail; + } + /* Do the domain join here */ r->in.domain_name = domain; diff --git a/source3/utils/net_lookup.c b/source3/utils/net_lookup.c index 0a85da346f..2afa75c609 100644 --- a/source3/utils/net_lookup.c +++ b/source3/utils/net_lookup.c @@ -410,6 +410,12 @@ static int net_lookup_dsgetdcname(struct net_context *c, int argc, const char ** site_name = argv[2]; } + if (!c->msg_ctx) { + d_fprintf(stderr, _("Could not initialise message context. " + "Try running as root\n")); + return -1; + } + status = dsgetdcname(mem_ctx, c->msg_ctx, domain_name, NULL, site_name, flags, &info); if (!NT_STATUS_IS_OK(status)) { |