summaryrefslogtreecommitdiff
path: root/source3/smbd/sesssetup.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-01-07 19:55:03 +0000
committerJeremy Allison <jra@samba.org>2004-01-07 19:55:03 +0000
commit2dcb369a6604d90d7f9465ce362feccac798111e (patch)
tree845085a656acb8a538401181716677bbf456a671 /source3/smbd/sesssetup.c
parentb54c4ccead0ecf2a9be6e7f48cc35b6e87194737 (diff)
downloadsamba-2dcb369a6604d90d7f9465ce362feccac798111e.tar.gz
samba-2dcb369a6604d90d7f9465ce362feccac798111e.tar.bz2
samba-2dcb369a6604d90d7f9465ce362feccac798111e.zip
Fix from Luke Howard <lukeh@PADL.COM> for incorrect early free().
Jeremy. (This used to be commit e763a220f492bb8a9cacf31c07809c4866379bb6)
Diffstat (limited to 'source3/smbd/sesssetup.c')
-rw-r--r--source3/smbd/sesssetup.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index 2c38cd3eb3..80be9da53b 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -241,11 +241,10 @@ static int reply_spnego_kerberos(connection_struct *conn,
pw = smb_getpwnam( user );
- SAFE_FREE(user);
- SAFE_FREE(client);
-
if (!pw) {
DEBUG(1,("Username %s is invalid on this system\n",user));
+ SAFE_FREE(user);
+ SAFE_FREE(client);
data_blob_free(&ap_rep);
return ERROR_NT(NT_STATUS_LOGON_FAILURE);
}
@@ -257,14 +256,17 @@ static int reply_spnego_kerberos(connection_struct *conn,
if (!NT_STATUS_IS_OK(ret = make_server_info_pw(&server_info,pw))) {
DEBUG(1,("make_server_info_from_pw failed!\n"));
+ SAFE_FREE(user);
+ SAFE_FREE(client);
data_blob_free(&ap_rep);
return ERROR_NT(ret);
}
/* register_vuid keeps the server info */
- sess_vuid = register_vuid(server_info, session_key, nullblob, user);
+ sess_vuid = register_vuid(server_info, session_key, nullblob, client);
- free(user);
+ SAFE_FREE(user);
+ SAFE_FREE(client);
if (sess_vuid == -1) {
ret = NT_STATUS_LOGON_FAILURE;