[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Thu Nov 12 15:09:27 MST 2009
The branch, master has been updated
via d2a9f4a... Remove unused variable warning. Jeremy.
via 0363713... Remove erroneous 'presult = NULL' changes. Now presult only gets set if NTSTATUS == OK. Jeremy.
via 496d147... Revert "Ensure every return path initializes presult as NULL." Vl is correct, this is the wrong way to fix this.
via 5363d6e... Ensure all callers to the rpc_client/cli_pipe functions correctly initialize return variables. Jeremy.
from 6747a91... Fix bug 6891 - using windows explorer to change ownership on a folder fails with Bad File Descriptor. Jeremy.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit d2a9f4a2729026da11780ae4b71e289982094bd7
Author: Jeremy Allison <jra at samba.org>
Date: Thu Nov 12 14:09:25 2009 -0800
Remove unused variable warning.
Jeremy.
commit 03637130316099d4f3db4ce757af2f34ce46d881
Author: Jeremy Allison <jra at samba.org>
Date: Thu Nov 12 13:59:25 2009 -0800
Remove erroneous 'presult = NULL' changes. Now presult only gets set
if NTSTATUS == OK.
Jeremy.
commit 496d147dc4d50650ef1e88877aa28719458089b8
Author: Jeremy Allison <jra at samba.org>
Date: Thu Nov 12 13:57:13 2009 -0800
Revert "Ensure every return path initializes presult as NULL."
Vl is correct, this is the wrong way to fix this.
This reverts commit 83c2c177a5e86d04da37384f1f04230c8274e1e6.
commit 5363d6e62c2d4d3275e78d04c48835524c54f620
Author: Jeremy Allison <jra at samba.org>
Date: Thu Nov 12 13:56:33 2009 -0800
Ensure all callers to the rpc_client/cli_pipe functions correctly
initialize return variables.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source3/auth/auth_netlogond.c | 12 ++++----
source3/client/client.c | 2 +-
source3/include/proto.h | 13 ---------
source3/libads/authdata.c | 1 -
source3/libsmb/libsmb_dir.c | 2 +-
source3/libsmb/libsmb_server.c | 4 +-
source3/libsmb/passchange.c | 4 +-
source3/libsmb/trusts_util.c | 2 +-
source3/rpc_client/cli_pipe.c | 55 +++-------------------------------------
source3/utils/net_ads.c | 4 +-
source3/utils/net_rpc_shell.c | 2 +-
source3/utils/net_util.c | 2 +-
source3/utils/smbcacls.c | 2 +-
source3/utils/smbtree.c | 2 +-
14 files changed, 23 insertions(+), 84 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/auth/auth_netlogond.c b/source3/auth/auth_netlogond.c
index 8c930a5..ebfed83 100644
--- a/source3/auth/auth_netlogond.c
+++ b/source3/auth/auth_netlogond.c
@@ -31,8 +31,8 @@ static NTSTATUS netlogond_validate(TALLOC_CTX *mem_ctx,
struct netr_SamInfo3 **pinfo3,
NTSTATUS *schannel_bind_result)
{
- struct rpc_pipe_client *p;
- struct cli_pipe_auth_data *auth;
+ struct rpc_pipe_client *p = NULL;
+ struct cli_pipe_auth_data *auth = NULL;
struct netr_SamInfo3 *info3 = NULL;
NTSTATUS status;
@@ -158,14 +158,14 @@ static NTSTATUS check_netlogond_security(const struct auth_context *auth_context
{
TALLOC_CTX *frame = talloc_stackframe();
struct netr_SamInfo3 *info3 = NULL;
- struct rpc_pipe_client *p;
- struct cli_pipe_auth_data *auth;
+ struct rpc_pipe_client *p = NULL;
+ struct cli_pipe_auth_data *auth = NULL;
uint32_t neg_flags = NETLOGON_NEG_AUTH2_ADS_FLAGS;
- char *plaintext_machinepw;
+ char *plaintext_machinepw = NULL;
uint8_t machine_password[16];
uint8_t schannel_key[16];
NTSTATUS schannel_bind_result, status;
- struct named_mutex *mutex;
+ struct named_mutex *mutex = NULL;
const char *ncalrpcsock;
ncalrpcsock = lp_parm_const_string(
diff --git a/source3/client/client.c b/source3/client/client.c
index 435ede9..6a3e73c 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -3668,7 +3668,7 @@ static void browse_fn(const char *name, uint32 m,
static bool browse_host_rpc(bool sort)
{
NTSTATUS status;
- struct rpc_pipe_client *pipe_hnd;
+ struct rpc_pipe_client *pipe_hnd = NULL;
TALLOC_CTX *frame = talloc_stackframe();
WERROR werr;
struct srvsvc_NetShareInfoCtr info_ctr;
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 2dc0c83..0eb5815 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5287,23 +5287,10 @@ unsigned int rpccli_set_timeout(struct rpc_pipe_client *cli,
bool rpccli_get_pwd_hash(struct rpc_pipe_client *cli, uint8_t nt_hash[16]);
NTSTATUS rpccli_anon_bind_data(TALLOC_CTX *mem_ctx,
struct cli_pipe_auth_data **presult);
-NTSTATUS rpccli_ntlmssp_bind_data(TALLOC_CTX *mem_ctx,
- enum pipe_auth_type auth_type,
- enum dcerpc_AuthLevel auth_level,
- const char *domain,
- const char *username,
- const char *password,
- struct cli_pipe_auth_data **presult);
NTSTATUS rpccli_schannel_bind_data(TALLOC_CTX *mem_ctx, const char *domain,
enum dcerpc_AuthLevel auth_level,
struct netlogon_creds_CredentialState *creds,
struct cli_pipe_auth_data **presult);
-NTSTATUS rpccli_kerberos_bind_data(TALLOC_CTX *mem_ctx,
- enum dcerpc_AuthLevel auth_level,
- const char *service_princ,
- const char *username,
- const char *password,
- struct cli_pipe_auth_data **presult);
NTSTATUS rpc_pipe_open_tcp(TALLOC_CTX *mem_ctx, const char *host,
const struct ndr_syntax_id *abstract_syntax,
struct rpc_pipe_client **presult);
diff --git a/source3/libads/authdata.c b/source3/libads/authdata.c
index 93f4091..ef54006 100644
--- a/source3/libads/authdata.c
+++ b/source3/libads/authdata.c
@@ -359,7 +359,6 @@ NTSTATUS kerberos_return_pac(TALLOC_CTX *mem_ctx,
const char *auth_princ = NULL;
const char *local_service = NULL;
const char *cc = "MEMORY:kerberos_return_pac";
- krb5_creds *creds = NULL;
ZERO_STRUCT(tkt);
ZERO_STRUCT(ap_rep);
diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c
index 6a4613c..73bbf82 100644
--- a/source3/libsmb/libsmb_dir.c
+++ b/source3/libsmb/libsmb_dir.c
@@ -267,7 +267,7 @@ net_share_enum_rpc(struct cli_state *cli,
struct srvsvc_NetShareCtr1 ctr1;
fstring name = "";
fstring comment = "";
- struct rpc_pipe_client *pipe_hnd;
+ struct rpc_pipe_client *pipe_hnd = NULL;
NTSTATUS nt_status;
uint32_t resume_handle = 0;
uint32_t total_entries = 0;
diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
index db9d6de..a572acd 100644
--- a/source3/libsmb/libsmb_server.c
+++ b/source3/libsmb/libsmb_server.c
@@ -713,8 +713,8 @@ SMBC_attr_server(TALLOC_CTX *ctx,
{
int flags;
struct sockaddr_storage ss;
- struct cli_state *ipc_cli;
- struct rpc_pipe_client *pipe_hnd;
+ struct cli_state *ipc_cli = NULL;
+ struct rpc_pipe_client *pipe_hnd = NULL;
NTSTATUS nt_status;
SMBCSRV *srv=NULL;
SMBCSRV *ipc_srv=NULL;
diff --git a/source3/libsmb/passchange.c b/source3/libsmb/passchange.c
index 570a048..e8c412b 100644
--- a/source3/libsmb/passchange.c
+++ b/source3/libsmb/passchange.c
@@ -28,8 +28,8 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
char **err_str)
{
struct nmb_name calling, called;
- struct cli_state *cli;
- struct rpc_pipe_client *pipe_hnd;
+ struct cli_state *cli = NULL;
+ struct rpc_pipe_client *pipe_hnd = NULL;
struct sockaddr_storage ss;
char *user, *domain, *p;
diff --git a/source3/libsmb/trusts_util.c b/source3/libsmb/trusts_util.c
index 5dda3c5..e127c9a 100644
--- a/source3/libsmb/trusts_util.c
+++ b/source3/libsmb/trusts_util.c
@@ -142,7 +142,7 @@ bool enumerate_domain_trusts( TALLOC_CTX *mem_ctx, const char *domain,
struct sockaddr_storage dc_ss;
uint32 enum_ctx = 0;
struct cli_state *cli = NULL;
- struct rpc_pipe_client *lsa_pipe;
+ struct rpc_pipe_client *lsa_pipe = NULL;
bool retry;
struct lsa_DomainList dom_list;
int i;
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index deada5a..084bbef 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -3066,8 +3066,6 @@ NTSTATUS rpccli_anon_bind_data(TALLOC_CTX *mem_ctx,
{
struct cli_pipe_auth_data *result;
- *presult = NULL;
-
result = talloc(mem_ctx, struct cli_pipe_auth_data);
if (result == NULL) {
return NT_STATUS_NO_MEMORY;
@@ -3093,7 +3091,7 @@ static int cli_auth_ntlmssp_data_destructor(struct cli_pipe_auth_data *auth)
return 0;
}
-NTSTATUS rpccli_ntlmssp_bind_data(TALLOC_CTX *mem_ctx,
+static NTSTATUS rpccli_ntlmssp_bind_data(TALLOC_CTX *mem_ctx,
enum pipe_auth_type auth_type,
enum dcerpc_AuthLevel auth_level,
const char *domain,
@@ -3104,8 +3102,6 @@ NTSTATUS rpccli_ntlmssp_bind_data(TALLOC_CTX *mem_ctx,
struct cli_pipe_auth_data *result;
NTSTATUS status;
- *presult = NULL;
-
result = talloc(mem_ctx, struct cli_pipe_auth_data);
if (result == NULL) {
return NT_STATUS_NO_MEMORY;
@@ -3171,8 +3167,6 @@ NTSTATUS rpccli_schannel_bind_data(TALLOC_CTX *mem_ctx, const char *domain,
{
struct cli_pipe_auth_data *result;
- *presult = NULL;
-
result = talloc(mem_ctx, struct cli_pipe_auth_data);
if (result == NULL) {
return NT_STATUS_NO_MEMORY;
@@ -3213,7 +3207,7 @@ static int cli_auth_kerberos_data_destructor(struct kerberos_auth_struct *auth)
}
#endif
-NTSTATUS rpccli_kerberos_bind_data(TALLOC_CTX *mem_ctx,
+static NTSTATUS rpccli_kerberos_bind_data(TALLOC_CTX *mem_ctx,
enum dcerpc_AuthLevel auth_level,
const char *service_princ,
const char *username,
@@ -3223,8 +3217,6 @@ NTSTATUS rpccli_kerberos_bind_data(TALLOC_CTX *mem_ctx,
#ifdef HAVE_KRB5
struct cli_pipe_auth_data *result;
- *presult = NULL;
-
if ((username != NULL) && (password != NULL)) {
int ret = kerberos_kinit_password(username, password, 0, NULL);
if (ret != 0) {
@@ -3270,7 +3262,6 @@ NTSTATUS rpccli_kerberos_bind_data(TALLOC_CTX *mem_ctx,
TALLOC_FREE(result);
return NT_STATUS_NO_MEMORY;
#else
- *presult = NULL;
return NT_STATUS_NOT_SUPPORTED;
#endif
}
@@ -3288,8 +3279,6 @@ static NTSTATUS rpc_pipe_open_tcp_port(TALLOC_CTX *mem_ctx, const char *host,
NTSTATUS status;
int fd;
- *presult = NULL;
-
result = TALLOC_ZERO_P(mem_ctx, struct rpc_pipe_client);
if (result == NULL) {
return NT_STATUS_NO_MEMORY;
@@ -3480,18 +3469,13 @@ NTSTATUS rpc_pipe_open_tcp(TALLOC_CTX *mem_ctx, const char *host,
NTSTATUS status;
uint16_t port = 0;
- *presult = NULL;
-
status = rpc_pipe_get_tcp_port(host, abstract_syntax, &port);
if (!NT_STATUS_IS_OK(status)) {
- goto done;
+ return status;
}
- status = rpc_pipe_open_tcp_port(mem_ctx, host, port,
+ return rpc_pipe_open_tcp_port(mem_ctx, host, port,
abstract_syntax, presult);
-
-done:
- return status;
}
/********************************************************************
@@ -3506,8 +3490,6 @@ NTSTATUS rpc_pipe_open_ncalrpc(TALLOC_CTX *mem_ctx, const char *socket_path,
NTSTATUS status;
int fd;
- *presult = NULL;
-
result = talloc_zero(mem_ctx, struct rpc_pipe_client);
if (result == NULL) {
return NT_STATUS_NO_MEMORY;
@@ -3594,8 +3576,6 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli,
struct rpc_pipe_client *result;
NTSTATUS status;
- *presult = NULL;
-
/* sanity check to protect against crashes */
if ( !cli ) {
@@ -3649,8 +3629,6 @@ NTSTATUS rpc_pipe_open_local(TALLOC_CTX *mem_ctx,
struct cli_pipe_auth_data *auth;
NTSTATUS status;
- *presult = NULL;
-
result = talloc(mem_ctx, struct rpc_pipe_client);
if (result == NULL) {
return NT_STATUS_NO_MEMORY;
@@ -3710,8 +3688,6 @@ static NTSTATUS cli_rpc_pipe_open(struct cli_state *cli,
const struct ndr_syntax_id *interface,
struct rpc_pipe_client **presult)
{
- *presult = NULL;
-
switch (transport) {
case NCACN_IP_TCP:
return rpc_pipe_open_tcp(NULL, cli->desthost, interface,
@@ -3736,8 +3712,6 @@ NTSTATUS cli_rpc_pipe_open_noauth_transport(struct cli_state *cli,
struct cli_pipe_auth_data *auth;
NTSTATUS status;
- *presult = NULL;
-
status = cli_rpc_pipe_open(cli, transport, interface, &result);
if (!NT_STATUS_IS_OK(status)) {
return status;
@@ -3804,8 +3778,6 @@ NTSTATUS cli_rpc_pipe_open_noauth(struct cli_state *cli,
const struct ndr_syntax_id *interface,
struct rpc_pipe_client **presult)
{
- *presult = NULL;
-
return cli_rpc_pipe_open_noauth_transport(cli, NCACN_NP,
interface, presult);
}
@@ -3828,8 +3800,6 @@ static NTSTATUS cli_rpc_pipe_open_ntlmssp_internal(struct cli_state *cli,
struct cli_pipe_auth_data *auth;
NTSTATUS status;
- *presult = NULL;
-
status = cli_rpc_pipe_open(cli, transport, interface, &result);
if (!NT_STATUS_IS_OK(status)) {
return status;
@@ -3879,8 +3849,6 @@ NTSTATUS cli_rpc_pipe_open_ntlmssp(struct cli_state *cli,
const char *password,
struct rpc_pipe_client **presult)
{
- *presult = NULL;
-
return cli_rpc_pipe_open_ntlmssp_internal(cli,
interface,
transport,
@@ -3906,8 +3874,6 @@ NTSTATUS cli_rpc_pipe_open_spnego_ntlmssp(struct cli_state *cli,
const char *password,
struct rpc_pipe_client **presult)
{
- *presult = NULL;
-
return cli_rpc_pipe_open_ntlmssp_internal(cli,
interface,
transport,
@@ -3983,8 +3949,6 @@ NTSTATUS get_schannel_session_key(struct cli_state *cli,
struct rpc_pipe_client *netlogon_pipe = NULL;
NTSTATUS status;
- *presult = NULL;
-
status = cli_rpc_pipe_open_noauth(cli, &ndr_table_netlogon.syntax_id,
&netlogon_pipe);
if (!NT_STATUS_IS_OK(status)) {
@@ -4022,8 +3986,6 @@ NTSTATUS cli_rpc_pipe_open_schannel_with_key(struct cli_state *cli,
struct cli_pipe_auth_data *auth;
NTSTATUS status;
- *presult = NULL;
-
status = cli_rpc_pipe_open(cli, transport, interface, &result);
if (!NT_STATUS_IS_OK(status)) {
return status;
@@ -4078,8 +4040,6 @@ static NTSTATUS get_schannel_session_key_auth_ntlmssp(struct cli_state *cli,
struct rpc_pipe_client *netlogon_pipe = NULL;
NTSTATUS status;
- *presult = NULL;
-
status = cli_rpc_pipe_open_spnego_ntlmssp(
cli, &ndr_table_netlogon.syntax_id, NCACN_NP,
DCERPC_AUTH_LEVEL_PRIVACY,
@@ -4119,8 +4079,6 @@ NTSTATUS cli_rpc_pipe_open_ntlmssp_auth_schannel(struct cli_state *cli,
struct rpc_pipe_client *result = NULL;
NTSTATUS status;
- *presult = NULL;
-
status = get_schannel_session_key_auth_ntlmssp(
cli, domain, username, password, &neg_flags, &netlogon_pipe);
if (!NT_STATUS_IS_OK(status)) {
@@ -4160,8 +4118,6 @@ NTSTATUS cli_rpc_pipe_open_schannel(struct cli_state *cli,
struct rpc_pipe_client *result = NULL;
NTSTATUS status;
- *presult = NULL;
-
status = get_schannel_session_key(cli, domain, &neg_flags,
&netlogon_pipe);
if (!NT_STATUS_IS_OK(status)) {
@@ -4204,8 +4160,6 @@ NTSTATUS cli_rpc_pipe_open_krb5(struct cli_state *cli,
struct cli_pipe_auth_data *auth;
NTSTATUS status;
- *presult = NULL;
-
status = cli_rpc_pipe_open(cli, NCACN_NP, interface, &result);
if (!NT_STATUS_IS_OK(status)) {
return status;
@@ -4231,7 +4185,6 @@ NTSTATUS cli_rpc_pipe_open_krb5(struct cli_state *cli,
*presult = result;
return NT_STATUS_OK;
#else
- *presult = NULL;
DEBUG(0,("cli_rpc_pipe_open_krb5: kerberos not found at compile time.\n"));
return NT_STATUS_NOT_IMPLEMENTED;
#endif
diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
index 10873ca..031a338 100644
--- a/source3/utils/net_ads.c
+++ b/source3/utils/net_ads.c
@@ -1626,8 +1626,8 @@ static int net_ads_printer_publish(struct net_context *c, int argc, const char *
ADS_STRUCT *ads;
ADS_STATUS rc;
const char *servername, *printername;
- struct cli_state *cli;
- struct rpc_pipe_client *pipe_hnd;
+ struct cli_state *cli = NULL;
+ struct rpc_pipe_client *pipe_hnd = NULL;
struct sockaddr_storage server_ss;
NTSTATUS nt_status;
TALLOC_CTX *mem_ctx = talloc_init("net_ads_printer_publish");
diff --git a/source3/utils/net_rpc_shell.c b/source3/utils/net_rpc_shell.c
index 5e0f150..39ef1ce 100644
--- a/source3/utils/net_rpc_shell.c
+++ b/source3/utils/net_rpc_shell.c
@@ -69,7 +69,7 @@ static NTSTATUS net_sh_run(struct net_context *c,
int argc, const char **argv)
{
TALLOC_CTX *mem_ctx;
- struct rpc_pipe_client *pipe_hnd;
+ struct rpc_pipe_client *pipe_hnd = NULL;
NTSTATUS status;
mem_ctx = talloc_new(ctx);
diff --git a/source3/utils/net_util.c b/source3/utils/net_util.c
index d0d1fc0..eaa2125 100644
--- a/source3/utils/net_util.c
+++ b/source3/utils/net_util.c
@@ -28,7 +28,7 @@ NTSTATUS net_rpc_lookup_name(struct net_context *c,
const char **ret_name, DOM_SID *ret_sid,
enum lsa_SidType *ret_type)
{
- struct rpc_pipe_client *lsa_pipe;
+ struct rpc_pipe_client *lsa_pipe = NULL;
struct policy_handle pol;
NTSTATUS result = NT_STATUS_OK;
const char **dom_names;
diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c
index dfc2a92..eefe4fe 100644
--- a/source3/utils/smbcacls.c
+++ b/source3/utils/smbcacls.c
@@ -70,7 +70,7 @@ static NTSTATUS cli_lsa_lookup_sid(struct cli_state *cli,
char **domain, char **name)
{
uint16 orig_cnum = cli->cnum;
- struct rpc_pipe_client *p;
+ struct rpc_pipe_client *p = NULL;
struct policy_handle handle;
NTSTATUS status;
TALLOC_CTX *frame = talloc_stackframe();
diff --git a/source3/utils/smbtree.c b/source3/utils/smbtree.c
index 02001f0..717ce65 100644
--- a/source3/utils/smbtree.c
+++ b/source3/utils/smbtree.c
@@ -148,7 +148,7 @@ static bool get_rpc_shares(struct cli_state *cli,
void *state)
{
NTSTATUS status;
- struct rpc_pipe_client *pipe_hnd;
+ struct rpc_pipe_client *pipe_hnd = NULL;
TALLOC_CTX *mem_ctx;
WERROR werr;
struct srvsvc_NetShareInfoCtr info_ctr;
--
Samba Shared Repository
More information about the samba-cvs
mailing list