s4:auth_sam: avoid usage of data_blob_talloc_reference() and copy the session keys
authorStefan Metzmacher <metze@samba.org>
Tue, 5 Jan 2010 19:11:29 +0000 (20:11 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 29 Jan 2010 10:16:35 +0000 (11:16 +0100)
metze

source4/auth/sam.c

index 53de4140c27be36aa635b4f3b394e968ff82c932..4c0fafeff8e8c7b094c7660d7fed1e8e9ffc3f6b 100644 (file)
@@ -503,10 +503,20 @@ _PUBLIC_ NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx,
        server_info->acct_flags = samdb_result_acct_flags(sam_ctx, mem_ctx, 
                                                          msg, domain_dn);
 
-       server_info->user_session_key = data_blob_talloc_reference(server_info,
-               &user_sess_key);
-       server_info->lm_session_key = data_blob_talloc_reference(server_info,
-               &lm_sess_key);
+       server_info->user_session_key = data_blob_talloc(server_info,
+                                                        user_sess_key.data,
+                                                        user_sess_key.length);
+       if (user_sess_key.data) {
+               NT_STATUS_HAVE_NO_MEMORY_AND_FREE(server_info->user_session_key.data,
+                                                 server_info);
+       }
+       server_info->lm_session_key = data_blob_talloc(server_info,
+                                                      lm_sess_key.data,
+                                                      lm_sess_key.length);
+       if (lm_sess_key.data) {
+               NT_STATUS_HAVE_NO_MEMORY_AND_FREE(server_info->lm_session_key.data,
+                                                 server_info);
+       }
 
        server_info->authenticated = true;