summaryrefslogtreecommitdiffstats
path: root/source/libsmb
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-05-06 17:48:45 +0000
committerJeremy Allison <jra@samba.org>2004-05-06 17:48:45 +0000
commitf71d3314f02648639dc94a1501146cc79f8fca8c (patch)
tree8aa712e8f48a618958245aa35029e046ea8dd3df /source/libsmb
parent59624a21a8937095b8d9707f50d2def2af46f721 (diff)
downloadsamba-f71d3314f02648639dc94a1501146cc79f8fca8c.tar.gz
samba-f71d3314f02648639dc94a1501146cc79f8fca8c.tar.xz
samba-f71d3314f02648639dc94a1501146cc79f8fca8c.zip
r525: More memory leak fixes from kawasa_r@itg.hitachi.co.jp in error code
paths. Jeremy.
Diffstat (limited to 'source/libsmb')
-rw-r--r--source/libsmb/cliconnect.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/libsmb/cliconnect.c b/source/libsmb/cliconnect.c
index e345dbe4796..afbd2079eac 100644
--- a/source/libsmb/cliconnect.c
+++ b/source/libsmb/cliconnect.c
@@ -421,9 +421,7 @@ static BOOL cli_session_setup_nt1(struct cli_state *cli, const char *user,
end:
data_blob_free(&lm_response);
data_blob_free(&nt_response);
-
- if (!ret)
- data_blob_free(&session_key);
+ data_blob_free(&session_key);
return ret;
}
@@ -558,6 +556,7 @@ static ADS_STATUS cli_session_setup_kerberos(struct cli_state *cli, const char *
cli_set_session_key(cli, session_key_krb5);
data_blob_free(&negTokenTarg);
+ data_blob_free(&session_key_krb5);
if (cli_is_error(cli)) {
if (NT_STATUS_IS_OK(cli_nt_error(cli))) {
@@ -744,6 +743,8 @@ ADS_STATUS cli_session_setup_spnego(struct cli_state *cli, const char *user,
* and do not store results */
if (got_kerberos_mechanism && cli->use_kerberos) {
+ ADS_STATUS rc;
+
if (pass && *pass) {
int ret;
@@ -751,16 +752,19 @@ ADS_STATUS cli_session_setup_spnego(struct cli_state *cli, const char *user,
ret = kerberos_kinit_password(user, pass, 0 /* no time correction for now */, NULL);
if (ret){
+ SAFE_FREE(principal);
DEBUG(0, ("Kinit failed: %s\n", error_message(ret)));
return ADS_ERROR_KRB5(ret);
}
}
- return cli_session_setup_kerberos(cli, principal, domain);
+ rc = cli_session_setup_kerberos(cli, principal, domain);
+ SAFE_FREE(principal);
+ return rc;
}
#endif
- free(principal);
+ SAFE_FREE(principal);
ntlmssp: