Revert "s3:smbd Fix segfault if register_existing_vuid() fails"
authorVolker Lendecke <vl@samba.org>
Tue, 8 Jun 2010 08:26:43 +0000 (10:26 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 8 Jun 2010 09:38:08 +0000 (11:38 +0200)
This reverts commit 8f1cec5faf4e26de8b9797777059e99f2a66558b.

source3/smbd/sesssetup.c

index 486b4d137fc92c57513ad783f6fd49f09039e2ee..dba6dabd267b2095c3f00b4433d350cb14db81cc 100644 (file)
@@ -629,7 +629,6 @@ static void reply_spnego_ntlmssp(struct smb_request *req,
                                 const char *OID,
                                 bool wrap)
 {
-       bool do_invalidate = true;
        DATA_BLOB response;
        struct auth_serversupplied_info *server_info = NULL;
        struct smbd_server_connection *sconn = smbd_server_conn;
@@ -664,11 +663,6 @@ static void reply_spnego_ntlmssp(struct smb_request *req,
                                           server_info, nullblob,
                                           auth_ntlmssp_get_username(*auth_ntlmssp_state)) !=
                                           vuid) {
-                       /* The problem is, *auth_ntlmssp_state points
-                        * into the vuser this will have
-                        * talloc_free()'ed in
-                        * register_existing_vuid() */
-                       do_invalidate = false;
                        nt_status = NT_STATUS_LOGON_FAILURE;
                        goto out;
                }
@@ -702,12 +696,10 @@ static void reply_spnego_ntlmssp(struct smb_request *req,
 
        if (!NT_STATUS_EQUAL(nt_status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
                /* NB. This is *NOT* an error case. JRA */
-               if (do_invalidate) {
-                       auth_ntlmssp_end(auth_ntlmssp_state);
-                       if (!NT_STATUS_IS_OK(nt_status)) {
-                               /* Kill the intermediate vuid */
-                               invalidate_vuid(sconn, vuid);
-                       }
+               auth_ntlmssp_end(auth_ntlmssp_state);
+               if (!NT_STATUS_IS_OK(nt_status)) {
+                       /* Kill the intermediate vuid */
+                       invalidate_vuid(sconn, vuid);
                }
        }
 }