[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-unstable-1250-gac2bb83
Volker Lendecke
vl at samba.org
Thu Jan 10 12:20:30 GMT 2008
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 <vl at samba.org>
Date: Sun Jan 6 14:17:15 2008 +0100
use talloc_tos() in share_access_check()
commit 444e35e7df1f13fc285183da8fb41b30ad99a3fa
Author: Volker Lendecke <vl at samba.org>
Date: Sun Jan 6 16:15:45 2008 +0100
Some more talloc_tos()
commit 65dd869bea351010c67f02046ae4134bdada1a4c
Author: Volker Lendecke <vl at samba.org>
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
More information about the samba-cvs
mailing list