[SCM] Samba Shared Repository - branch master updated
Matthias Dieter Wallnöfer
mdw at samba.org
Tue Mar 16 10:12:13 MDT 2010
The branch, master has been updated
via a6c5747... heimdal - remove unused variable
via dc5e0d8... heimdal - fix overlapped identifiers in the "krb5" library
via 973001e... heimdal - free always "ctx->password" when it isn't needed anymore
via bdc0372... s4:auth/kerberos/kerberos.c - fix also here a memory leak
via 36175be... libcli/auth/schannel_state_tdb.c - fix a memory leak
via 4c29a4e... s4:wb_cmd_getgroups - fix failure in s4 winbind's "getgroups"
from c323629... s4-smbtorture: use random buffer for extended SetValue test in RPC-WINREG.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit a6c57472ab144eb6d77cc85f56d7bd3152146b1d
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Tue Mar 16 17:07:04 2010 +0100
heimdal - remove unused variable
commit dc5e0d84641173b7f710f0a735970f5dd2c27d38
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Tue Mar 16 16:53:39 2010 +0100
heimdal - fix overlapped identifiers in the "krb5" library
commit 973001e91a3988f4338f88599acbf4ab8978e1c9
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Tue Mar 16 16:26:25 2010 +0100
heimdal - free always "ctx->password" when it isn't needed anymore
"strdup" does always create a new object in the memory (through "malloc") which
needs to be freed if it isn't used anymore.
commit bdc0372f8a6116b3be7cd8bd6d398c0f1929ae68
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Tue Mar 16 16:29:46 2010 +0100
s4:auth/kerberos/kerberos.c - fix also here a memory leak
The options need to be freed also on this error case.
commit 36175be5d4dbbd1545db4ac7de98d9293b897188
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Tue Mar 16 16:23:57 2010 +0100
libcli/auth/schannel_state_tdb.c - fix a memory leak
commit 4c29a4e12683a6826104f5974a86d07fb6346266
Author: Matthias Dieter Wallnöfer <mwallnoefer at yahoo.de>
Date: Tue Mar 16 16:00:34 2010 +0100
s4:wb_cmd_getgroups - fix failure in s4 winbind's "getgroups"
-----------------------------------------------------------------------
Summary of changes:
libcli/auth/schannel_state_tdb.c | 1 +
source4/auth/kerberos/kerberos.c | 1 +
source4/heimdal/lib/krb5/crypto.c | 6 +++---
source4/heimdal/lib/krb5/get_cred.c | 1 -
source4/heimdal/lib/krb5/init_creds_pw.c | 8 +++++---
source4/heimdal/lib/krb5/pkinit.c | 12 ++++++------
source4/winbind/wb_cmd_getgroups.c | 2 +-
7 files changed, 17 insertions(+), 14 deletions(-)
Changeset truncated at 500 lines:
diff --git a/libcli/auth/schannel_state_tdb.c b/libcli/auth/schannel_state_tdb.c
index d1e5ed0..c1557e8 100644
--- a/libcli/auth/schannel_state_tdb.c
+++ b/libcli/auth/schannel_state_tdb.c
@@ -223,6 +223,7 @@ NTSTATUS schannel_fetch_session_key_tdb(struct tdb_wrap *tdb_sc,
done:
talloc_free(keystr);
+ SAFE_FREE(value.dptr);
if (!NT_STATUS_IS_OK(status)) {
talloc_free(creds);
diff --git a/source4/auth/kerberos/kerberos.c b/source4/auth/kerberos/kerberos.c
index 8df54cc..d4549ee 100644
--- a/source4/auth/kerberos/kerberos.c
+++ b/source4/auth/kerberos/kerberos.c
@@ -100,6 +100,7 @@
if ((code = krb5_get_init_creds_password(ctx, &my_creds, principal, password,
NULL,
NULL, 0, NULL, options))) {
+ krb5_get_init_creds_opt_free(ctx, options);
return code;
}
diff --git a/source4/heimdal/lib/krb5/crypto.c b/source4/heimdal/lib/krb5/crypto.c
index 8cc7b06..745c856 100644
--- a/source4/heimdal/lib/krb5/crypto.c
+++ b/source4/heimdal/lib/krb5/crypto.c
@@ -2043,13 +2043,13 @@ evp_encrypt(krb5_context context,
c = encryptp ? &ctx->ectx : &ctx->dctx;
if (ivec == NULL) {
/* alloca ? */
- size_t len = EVP_CIPHER_CTX_iv_length(c);
- void *loiv = malloc(len);
+ size_t len2 = EVP_CIPHER_CTX_iv_length(c);
+ void *loiv = malloc(len2);
if (loiv == NULL) {
krb5_clear_error_message(context);
return ENOMEM;
}
- memset(loiv, 0, len);
+ memset(loiv, 0, len2);
EVP_CipherInit_ex(c, NULL, NULL, NULL, loiv, -1);
free(loiv);
} else
diff --git a/source4/heimdal/lib/krb5/get_cred.c b/source4/heimdal/lib/krb5/get_cred.c
index 7072137..e921cf0 100644
--- a/source4/heimdal/lib/krb5/get_cred.c
+++ b/source4/heimdal/lib/krb5/get_cred.c
@@ -145,7 +145,6 @@ init_tgs_req (krb5_context context,
{
krb5_auth_context ac = NULL;
krb5_error_code ret = 0;
- krb5_keyblock *key = NULL;
memset(t, 0, sizeof(*t));
t->pvno = 5;
diff --git a/source4/heimdal/lib/krb5/init_creds_pw.c b/source4/heimdal/lib/krb5/init_creds_pw.c
index b615f53..5901c55 100644
--- a/source4/heimdal/lib/krb5/init_creds_pw.c
+++ b/source4/heimdal/lib/krb5/init_creds_pw.c
@@ -107,6 +107,8 @@ free_init_creds_ctx(krb5_context context, krb5_init_creds_context ctx)
free (ctx->pre_auth_types);
if (ctx->in_tkt_service)
free(ctx->in_tkt_service);
+ if (ctx->password)
+ free(ctx->password);
if (ctx->keytab_data)
free(ctx->keytab_data);
krb5_data_free(&ctx->req_buffer);
@@ -1354,7 +1356,7 @@ krb5_init_creds_set_password(krb5_context context,
const char *password)
{
if (ctx->password)
- memset(ctx->password, 0, strlen(ctx->password));
+ free(ctx->password);
if (password) {
ctx->password = strdup(password);
if (ctx->password == NULL) {
@@ -1893,7 +1895,7 @@ krb5_get_init_creds_password(krb5_context context,
if (ret == KRB5KDC_ERR_KEY_EXPIRED && chpw == 0) {
- char buf[1024];
+ char buf2[1024];
/* try to avoid recursion */
if (in_tkt_service != NULL && strcmp(in_tkt_service, "kadmin/changepw") == 0)
@@ -1906,7 +1908,7 @@ krb5_get_init_creds_password(krb5_context context,
ret = change_password (context,
client,
ctx->password,
- buf,
+ buf2,
sizeof(buf),
prompter,
data,
diff --git a/source4/heimdal/lib/krb5/pkinit.c b/source4/heimdal/lib/krb5/pkinit.c
index f6457aa..341f6a3 100644
--- a/source4/heimdal/lib/krb5/pkinit.c
+++ b/source4/heimdal/lib/krb5/pkinit.c
@@ -1170,10 +1170,10 @@ pk_rd_pa_reply_enckey(krb5_context context,
/* win2k uses ContentInfo */
if (type == PKINIT_WIN2K) {
- heim_oid type;
+ heim_oid type2;
heim_octet_string out;
- ret = hx509_cms_unwrap_ContentInfo(&content, &type, &out, NULL);
+ ret = hx509_cms_unwrap_ContentInfo(&content, &type2, &out, NULL);
if (ret) {
/* windows LH with interesting CMS packets */
size_t ph = 1 + der_length_len(content.length);
@@ -1190,19 +1190,19 @@ pk_rd_pa_reply_enckey(krb5_context context,
content.data = ptr;
content.length += ph;
- ret = hx509_cms_unwrap_ContentInfo(&content, &type, &out, NULL);
+ ret = hx509_cms_unwrap_ContentInfo(&content, &type2, &out, NULL);
if (ret)
goto out;
}
- if (der_heim_oid_cmp(&type, &asn1_oid_id_pkcs7_signedData)) {
+ if (der_heim_oid_cmp(&type2, &asn1_oid_id_pkcs7_signedData)) {
ret = EINVAL; /* XXX */
krb5_set_error_message(context, ret,
N_("PKINIT: Invalid content type", ""));
- der_free_oid(&type);
+ der_free_oid(&type2);
der_free_octet_string(&out);
goto out;
}
- der_free_oid(&type);
+ der_free_oid(&type2);
krb5_data_free(&content);
ret = krb5_data_copy(&content, out.data, out.length);
der_free_octet_string(&out);
diff --git a/source4/winbind/wb_cmd_getgroups.c b/source4/winbind/wb_cmd_getgroups.c
index 2262f68..d1a88b2 100644
--- a/source4/winbind/wb_cmd_getgroups.c
+++ b/source4/winbind/wb_cmd_getgroups.c
@@ -71,7 +71,7 @@ struct composite_context *wb_cmd_getgroups_send(TALLOC_CTX *mem_ctx,
state->num_groups = 0;
state->username = talloc_strdup(state,username);
- if (composite_nomem(ctx, result)) return result;
+ if (composite_nomem(state->username, result)) return result;
ctx = wb_cmd_getpwnam_send(state, service, username);
if (composite_nomem(ctx, result)) return result;
--
Samba Shared Repository
More information about the samba-cvs
mailing list