The branch, v3-2-test has been updated via ac2bb838d537ca563ad2fe770b3e1c2fe8b1d9e7 (commit) via 444e35e7df1f13fc285183da8fb41b30ad99a3fa (commit) via 65dd869bea351010c67f02046ae4134bdada1a4c (commit) from 88d6683872f4bb9c3074280f385f73c7af9de784 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test - Log ----------------------------------------------------------------- commit ac2bb838d537ca563ad2fe770b3e1c2fe8b1d9e7 Author: Volker Lendecke <[EMAIL PROTECTED]> Date: Sun Jan 6 14:17:15 2008 +0100 use talloc_tos() in share_access_check() commit 444e35e7df1f13fc285183da8fb41b30ad99a3fa Author: Volker Lendecke <[EMAIL PROTECTED]> Date: Sun Jan 6 16:15:45 2008 +0100 Some more talloc_tos() commit 65dd869bea351010c67f02046ae4134bdada1a4c Author: Volker Lendecke <[EMAIL PROTECTED]> Date: Sun Jan 6 14:21:25 2008 +0100 use talloc_tos in a few more places ----------------------------------------------------------------------- Summary of changes: source/lib/sharesec.c | 11 +++-------- source/locking/locking.c | 18 +++++++++--------- source/rpc_server/srv_srvsvc_nt.c | 2 +- source/smbd/blocking.c | 10 +++++----- source/smbd/close.c | 4 ++-- source/smbd/connection.c | 2 +- source/smbd/open.c | 8 ++++---- source/smbd/oplock.c | 6 +++--- source/smbd/reply.c | 8 +++++--- source/smbd/trans2.c | 2 +- 10 files changed, 34 insertions(+), 37 deletions(-) Changeset truncated at 500 lines: diff --git a/source/lib/sharesec.c b/source/lib/sharesec.c index ba025da..f6ff701 100644 --- a/source/lib/sharesec.c +++ b/source/lib/sharesec.c @@ -228,25 +228,20 @@ bool share_access_check(const NT_USER_TOKEN *token, const char *sharename, { uint32 granted; NTSTATUS status; - TALLOC_CTX *mem_ctx = NULL; SEC_DESC *psd = NULL; size_t sd_size; bool ret = True; - if (!(mem_ctx = talloc_init("share_access_check"))) { - return False; - } - - psd = get_share_security(mem_ctx, sharename, &sd_size); + psd = get_share_security(talloc_tos(), sharename, &sd_size); if (!psd) { - TALLOC_FREE(mem_ctx); return True; } ret = se_access_check(psd, token, desired_access, &granted, &status); - talloc_destroy(mem_ctx); + TALLOC_FREE(psd); + return ret; } diff --git a/source/locking/locking.c b/source/locking/locking.c index 2ec8cd2..113b994 100644 --- a/source/locking/locking.c +++ b/source/locking/locking.c @@ -102,7 +102,7 @@ bool is_locked(files_struct *fsp, DEBUG(10,("is_locked: optimisation - level II oplock on file %s\n", fsp->fsp_name )); ret = False; } else { - struct byte_range_lock *br_lck = brl_get_locks_readonly(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks_readonly(talloc_tos(), fsp); if (!br_lck) { return False; } @@ -116,7 +116,7 @@ bool is_locked(files_struct *fsp, TALLOC_FREE(br_lck); } } else { - struct byte_range_lock *br_lck = brl_get_locks_readonly(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks_readonly(talloc_tos(), fsp); if (!br_lck) { return False; } @@ -160,7 +160,7 @@ NTSTATUS query_lock(files_struct *fsp, return NT_STATUS_OK; } - br_lck = brl_get_locks_readonly(NULL, fsp); + br_lck = brl_get_locks_readonly(talloc_tos(), fsp); if (!br_lck) { return NT_STATUS_NO_MEMORY; } @@ -210,7 +210,7 @@ struct byte_range_lock *do_lock(struct messaging_context *msg_ctx, lock_flav_name(lock_flav), lock_type_name(lock_type), (double)offset, (double)count, fsp->fnum, fsp->fsp_name )); - br_lck = brl_get_locks(NULL, fsp); + br_lck = brl_get_locks(talloc_tos(), fsp); if (!br_lck) { *perr = NT_STATUS_NO_MEMORY; return NULL; @@ -269,7 +269,7 @@ NTSTATUS do_unlock(struct messaging_context *msg_ctx, DEBUG(10,("do_unlock: unlock start=%.0f len=%.0f requested for fnum %d file %s\n", (double)offset, (double)count, fsp->fnum, fsp->fsp_name )); - br_lck = brl_get_locks(NULL, fsp); + br_lck = brl_get_locks(talloc_tos(), fsp); if (!br_lck) { return NT_STATUS_NO_MEMORY; } @@ -323,7 +323,7 @@ NTSTATUS do_lock_cancel(files_struct *fsp, DEBUG(10,("do_lock_cancel: cancel start=%.0f len=%.0f requested for fnum %d file %s\n", (double)offset, (double)count, fsp->fnum, fsp->fsp_name )); - br_lck = brl_get_locks(NULL, fsp); + br_lck = brl_get_locks(talloc_tos(), fsp); if (!br_lck) { return NT_STATUS_NO_MEMORY; } @@ -372,7 +372,7 @@ void locking_close_file(struct messaging_context *msg_ctx, return; } - br_lck = brl_get_locks(NULL,fsp); + br_lck = brl_get_locks(talloc_tos(),fsp); if (br_lck) { cancel_pending_lock_requests_by_fid(fsp, br_lck); @@ -925,7 +925,7 @@ bool get_delete_on_close_flag(struct file_id id) bool result; struct share_mode_lock *lck; - if (!(lck = fetch_share_mode_unlocked(NULL, id, NULL, NULL))) { + if (!(lck = fetch_share_mode_unlocked(talloc_tos(), id, NULL, NULL))) { return False; } result = lck->delete_on_close; @@ -1328,7 +1328,7 @@ bool set_delete_on_close(files_struct *fsp, bool delete_on_close, UNIX_USER_TOKE return True; } - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { return False; } diff --git a/source/rpc_server/srv_srvsvc_nt.c b/source/rpc_server/srv_srvsvc_nt.c index 01e5cf2..1b877ee 100644 --- a/source/rpc_server/srv_srvsvc_nt.c +++ b/source/rpc_server/srv_srvsvc_nt.c @@ -167,7 +167,7 @@ static void enum_file_fn( const struct share_mode_entry *e, ZERO_STRUCT( fsp ); fsp.file_id = e->id; - if ( (brl = brl_get_locks(NULL,&fsp)) != NULL ) { + if ( (brl = brl_get_locks(talloc_tos(), &fsp)) != NULL ) { num_locks = brl->num_locks; TALLOC_FREE(brl); } diff --git a/source/smbd/blocking.c b/source/smbd/blocking.c index 4e0d528..479361a 100644 --- a/source/smbd/blocking.c +++ b/source/smbd/blocking.c @@ -625,7 +625,7 @@ void remove_pending_lock_requests_by_mid(int mid) next = blr->next; if(SVAL(blr->inbuf,smb_mid) == mid) { files_struct *fsp = blr->fsp; - struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks(talloc_tos(), fsp); if (br_lck) { DEBUG(10,("remove_pending_lock_requests_by_mid - removing request type %d for \ @@ -715,7 +715,7 @@ static void process_blocking_lock_queue(void) fsp->fnum, fsp->fsp_name )); if(!change_to_user(conn,vuid)) { - struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks(talloc_tos(), fsp); /* * Remove the entry and return an error to the client. @@ -741,7 +741,7 @@ static void process_blocking_lock_queue(void) } if(!set_current_service(conn,SVAL(blr->inbuf,smb_flg),True)) { - struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks(talloc_tos(), fsp); /* * Remove the entry and return an error to the client. @@ -773,7 +773,7 @@ static void process_blocking_lock_queue(void) */ if(blocking_lock_record_process(blr)) { - struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks(talloc_tos(), fsp); if (br_lck) { brl_lock_cancel(br_lck, @@ -800,7 +800,7 @@ static void process_blocking_lock_queue(void) */ if (!timeval_is_zero(&blr->expire_time) && timeval_compare(&blr->expire_time, &tv_curr) <= 0) { - struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp); + struct byte_range_lock *br_lck = brl_get_locks(talloc_tos(), fsp); /* * Lock expired - throw away all previously diff --git a/source/smbd/close.c b/source/smbd/close.c index 5d30e46..c74e133 100644 --- a/source/smbd/close.c +++ b/source/smbd/close.c @@ -176,7 +176,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp, * This prevents race conditions with the file being created. JRA. */ - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { DEBUG(0, ("close_remove_share_mode: Could not get share mode " @@ -441,7 +441,7 @@ static NTSTATUS close_directory(files_struct *fsp, enum file_close_type close_ty * reference to a directory also. */ - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { DEBUG(0, ("close_directory: Could not get share mode lock for %s\n", fsp->fsp_name)); diff --git a/source/smbd/connection.c b/source/smbd/connection.c index 95e45a6..016c8ad 100644 --- a/source/smbd/connection.c +++ b/source/smbd/connection.c @@ -132,7 +132,7 @@ bool claim_connection(connection_struct *conn, const char *name, DEBUG(5,("claiming [%s]\n", name)); - if (!(rec = connections_fetch_entry(NULL, conn, name))) { + if (!(rec = connections_fetch_entry(talloc_tos(), conn, name))) { DEBUG(0, ("connections_fetch_entry failed\n")); return False; } diff --git a/source/smbd/open.c b/source/smbd/open.c index 037ab63..59699df 100644 --- a/source/smbd/open.c +++ b/source/smbd/open.c @@ -1221,7 +1221,7 @@ NTSTATUS open_file_ntcreate(connection_struct *conn, request_time = pml->request_time; /* Remove the deferred open entry under lock. */ - lck = get_share_mode_lock(NULL, state->id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), state->id, NULL, NULL); if (lck == NULL) { DEBUG(0, ("could not get share mode lock\n")); } else { @@ -1451,7 +1451,7 @@ NTSTATUS open_file_ntcreate(connection_struct *conn, if (file_existed) { id = vfs_file_id_from_sbuf(conn, psbuf); - lck = get_share_mode_lock(NULL, id, + lck = get_share_mode_lock(talloc_tos(), id, conn->connectpath, fname); @@ -1678,7 +1678,7 @@ NTSTATUS open_file_ntcreate(connection_struct *conn, id = fsp->file_id; - lck = get_share_mode_lock(NULL, id, + lck = get_share_mode_lock(talloc_tos(), id, conn->connectpath, fname); @@ -2212,7 +2212,7 @@ NTSTATUS open_directory(connection_struct *conn, string_set(&fsp->fsp_name,fname); - lck = get_share_mode_lock(NULL, fsp->file_id, + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, conn->connectpath, fname); diff --git a/source/smbd/oplock.c b/source/smbd/oplock.c index 277e07c..420aa94 100644 --- a/source/smbd/oplock.c +++ b/source/smbd/oplock.c @@ -181,7 +181,7 @@ bool remove_oplock(files_struct *fsp) struct share_mode_lock *lck; /* Remove the oplock flag from the sharemode. */ - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { DEBUG(0,("remove_oplock: failed to lock share entry for " "file %s\n", fsp->fsp_name )); @@ -206,7 +206,7 @@ bool downgrade_oplock(files_struct *fsp) bool ret; struct share_mode_lock *lck; - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { DEBUG(0,("downgrade_oplock: failed to lock share entry for " "file %s\n", fsp->fsp_name )); @@ -757,7 +757,7 @@ void release_level_2_oplocks_on_change(files_struct *fsp) if (!LEVEL_II_OPLOCK_TYPE(fsp->oplock_type)) return; - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { DEBUG(0,("release_level_2_oplocks_on_change: failed to lock " "share mode entry for file %s.\n", fsp->fsp_name )); diff --git a/source/smbd/reply.c b/source/smbd/reply.c index a796a31..79c0176 100644 --- a/source/smbd/reply.c +++ b/source/smbd/reply.c @@ -592,7 +592,8 @@ void reply_tcon_and_X(struct smb_request *req) } if (global_encrypted_passwords_negotiated) { - password = data_blob(smb_buf(req->inbuf),passlen); + password = data_blob_talloc(talloc_tos(), smb_buf(req->inbuf), + passlen); if (lp_security() == SEC_SHARE) { /* * Security = share always has a pad byte @@ -603,7 +604,8 @@ void reply_tcon_and_X(struct smb_request *req) p = smb_buf(req->inbuf) + passlen; } } else { - password = data_blob(smb_buf(req->inbuf),passlen+1); + password = data_blob_talloc(talloc_tos(), smb_buf(req->inbuf), + passlen+1); /* Ensure correct termination */ password.data[passlen]=0; p = smb_buf(req->inbuf) + passlen + 1; @@ -5508,7 +5510,7 @@ NTSTATUS rename_internals_fsp(connection_struct *conn, return NT_STATUS_ACCESS_DENIED; } - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); /* * We have the file open ourselves, so not being able to get the diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c index ce0b239..bf6802f 100644 --- a/source/smbd/trans2.c +++ b/source/smbd/trans2.c @@ -6193,7 +6193,7 @@ static NTSTATUS smb_posix_unlink(connection_struct *conn, * non-POSIX opens return SHARING_VIOLATION. */ - lck = get_share_mode_lock(NULL, fsp->file_id, NULL, NULL); + lck = get_share_mode_lock(talloc_tos(), fsp->file_id, NULL, NULL); if (lck == NULL) { DEBUG(0, ("smb_posix_unlink: Could not get share mode " "lock for file %s\n", fsp->fsp_name)); -- Samba Shared Repository