git.samba.org
/
metze
/
samba
/
wip.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
97a4adb
)
try to fix SMB_ASSERT(got_token)... TODO
author
Stefan Metzmacher
<metze@samba.org>
Fri, 1 Jun 2012 10:52:16 +0000
(12:52 +0200)
committer
Stefan Metzmacher
<metze@samba.org>
Fri, 1 Jun 2012 10:52:16 +0000
(12:52 +0200)
source3/smbd/close.c
patch
|
blob
|
history
diff --git
a/source3/smbd/close.c
b/source3/smbd/close.c
index 4b7f6945107cd28d4cf50194b623c3e68067cd42..bdd177cca8f38eb43347cf9ed48eb437f85138da 100644
(file)
--- a/
source3/smbd/close.c
+++ b/
source3/smbd/close.c
@@
-385,12
+385,6
@@
static NTSTATUS close_remove_share_mode(files_struct *fsp,
}
}
}
}
- if (!del_share_mode(lck, fsp)) {
- DEBUG(0, ("close_remove_share_mode: Could not delete share "
- "entry for file %s\n",
- fsp_str_dbg(fsp)));
- }
-
if (fsp->initial_delete_on_close &&
!is_delete_on_close_set(lck, fsp->name_hash)) {
bool became_user = False;
if (fsp->initial_delete_on_close &&
!is_delete_on_close_set(lck, fsp->name_hash)) {
bool became_user = False;
@@
-420,6
+414,9
@@
static NTSTATUS close_remove_share_mode(files_struct *fsp,
POSIX delete now. */
for (i=0; i<lck->data->num_share_modes; i++) {
struct share_mode_entry *e = &lck->data->share_modes[i];
POSIX delete now. */
for (i=0; i<lck->data->num_share_modes; i++) {
struct share_mode_entry *e = &lck->data->share_modes[i];
+
+ //TODO: continue if our own entry...
+
if (is_valid_share_mode_entry(e) &&
e->name_hash == fsp->name_hash) {
if (fsp->posix_open && (e->flags & SHARE_MODE_FLAG_POSIX_OPEN)) {
if (is_valid_share_mode_entry(e) &&
e->name_hash == fsp->name_hash) {
if (fsp->posix_open && (e->flags & SHARE_MODE_FLAG_POSIX_OPEN)) {
@@
-445,6
+442,12
@@
static NTSTATUS close_remove_share_mode(files_struct *fsp,
if (!(close_type == NORMAL_CLOSE || close_type == SHUTDOWN_CLOSE) ||
!delete_file) {
if (!(close_type == NORMAL_CLOSE || close_type == SHUTDOWN_CLOSE) ||
!delete_file) {
+ if (!del_share_mode(lck, fsp)) {
+ DEBUG(0, ("close_remove_share_mode: Could not delete share "
+ "entry for file %s\n",
+ fsp_str_dbg(fsp)));
+ }
+
TALLOC_FREE(lck);
return NT_STATUS_OK;
}
TALLOC_FREE(lck);
return NT_STATUS_OK;
}
@@
-564,6
+567,14
@@
static NTSTATUS close_remove_share_mode(files_struct *fsp,
pop_sec_ctx();
}
pop_sec_ctx();
}
+ if (delete_file) {
+ if (!del_share_mode(lck, fsp)) {
+ DEBUG(0, ("close_remove_share_mode: Could not delete share "
+ "entry for file %s\n",
+ fsp_str_dbg(fsp)));
+ }
+ }
+
TALLOC_FREE(lck);
if (delete_file) {
TALLOC_FREE(lck);
if (delete_file) {