summaryrefslogtreecommitdiff
path: root/source3/smbd/close.c
AgeCommit message (Collapse)AuthorFilesLines
2012-06-03s3:smbd/close: call del_share_mode() directly before TALLOC_FREE(lck)Stefan Metzmacher1-5/+15
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Sun Jun 3 21:08:19 CEST 2012 on sn-devel-104
2012-06-03s3:smbd/close: remove unused goto out from close_directory()Stefan Metzmacher1-3/+1
metze
2012-06-03s3:smbd/close: do an early return in close_directory()Stefan Metzmacher1-2/+1
metze
2012-06-03s3: Fix an assert to trigger in close_remove_share_modeStefan Metzmacher1-6/+17
In case we have a left-over entry in the share mode entry array, the SMB_ASSERT(got_tokens) is likely to kick in. It happens when we are about to delete a file with initial delete on close. We don't have a delete on close token set in the locking.tdb record. We see the fsp->initial_delete_on_close set, add the delete_on_close token to lck. Then "delete_file" is being set to true. Then later on we do the notify_deferred_opens. This walks the list, also checking for share_mode_stale_pid. We have already deleted our own share mode entry, share_mode_stale_pid() sees the left-over entry. It not also deletes that one but also the delete on close token. This leads to a different view of "delete_file" a.k.a. "got_tokens" further down in close_remove_share_mode, leading the SMB_ASSERT to fire. This patch attempts to fix the issue by keeping around our own share mode entry for almost the whole routine, preventing share_mode_stale_pid() from removing the delete tokens. Pair-Programmed-With: Volker Lendecke <vl@samba.org>
2012-06-03s3: Do an early return in close_remove_share_modeVolker Lendecke1-2/+1
Without "lck" we don't have much to clean up Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-03s3: Make close_remove_share_mode a bit more readableVolker Lendecke1-2/+4
by introducing a variable simplifying a boolean expression Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-03s3: Slightly simplify close_remove_share_modeVolker Lendecke1-10/+15
Remove a level of indentation by more use of "continue;" Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-06-03s3:smbd/close: avoid procid_is_me()Stefan Metzmacher1-1/+2
metze
2012-05-25s3: Check for serverid_exists in close_directoryVolker Lendecke1-0/+3
Signed-off-by: Jeremy Allison <jra@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-05-25s3: Check for serverid_exists in close_remove_share_modeVolker Lendecke1-0/+3
Signed-off-by: Jeremy Allison <jra@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-05-25s3: Check for serverid_exists in notify_deferred_opensVolker Lendecke1-2/+8
We will remove the check in parse_share_modes soon Signed-off-by: Jeremy Allison <jra@samba.org> Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-05-25s3:smbd: pass smbd_server_connection to should_notify_deferred_opens()Stefan Metzmacher1-1/+1
metze
2012-05-19Move the set_write_time() call to after get_existing_share_mode_lock() ↵Jeremy Allison1-3/+15
returns with a share mode. get_existing_share_mode_lock() isn't really the right call here, as we're being called after close_remove_share_mode() inside close_normal_file() so it's quite normal to not have an existing share mode here. However, get_share_mode_lock() doesn't work because that will create a new share mode if one doesn't exist - so stick with this call (just ignore any error we get if the share mode doesn't exist. The previous commit raised the error message debug level inside get_share_mode_lock_internal() so we don't always get a level 1 error message if get_existing_share_mode_lock() fails. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Sat May 19 06:26:33 CEST 2012 on sn-devel-104
2012-05-18s3: Revert the serverid changes, they need more workVolker Lendecke1-14/+2
Autobuild-User: Volker Lendecke <vl@samba.org> Autobuild-Date: Fri May 18 13:12:14 CEST 2012 on sn-devel-104
2012-05-17s3: Check for serverid_exists in close_directoryVolker Lendecke1-0/+3
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-05-17s3: Check for serverid_exists in close_remove_share_modeVolker Lendecke1-0/+3
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-05-17s3: Check for serverid_exists in notify_deferred_opensVolker Lendecke1-2/+8
We will remove the check in parse_share_modes soon Signed-off-by: Jeremy Allison <jra@samba.org>
2012-04-12Remove cancel_aio_by_fsp(). It can never work and could lead to memory ↵Jeremy Allison1-12/+9
corruption as outstanding IO's complete. Also we never have any aio's on a call to close_normal_file() with close_type ERROR_CLOSE.
2012-04-06build: Remove SMB_OFF_T, replace with off_tAndrew Bartlett1-1/+1
Now that we always require a 64 bit off_t, we no longer need SMB_OFF_T. Andrew Bartlett Autobuild-User: Andrew Bartlett <abartlet@samba.org> Autobuild-Date: Fri Apr 6 01:47:43 CEST 2012 on sn-devel-104
2012-04-05Third part of fix for bug #8837 - smbd crashes when deleting directory and ↵Jeremy Allison1-1/+1
veto files are enabled. Use correct check to see if veto files has been enabled. Even if not set lp_veto_files() returns a valid string address (to a '\0' character). Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu Apr 5 01:36:04 CEST 2012 on sn-devel-104
2012-04-04Second part of bugfix for bug #8837 - smbd crashes when deleting directory ↵Jeremy Allison1-8/+15
and veto files are enabled. Store the 'struct security_token' as well as the 'struct security_unix_token' inside the locking db when setting a delete on close.
2012-02-24Fix const warnings.Jeremy Allison1-2/+2
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Fri Feb 24 23:10:56 CET 2012 on sn-devel-104
2012-02-19s3: get_share_mode_lock->get_existing_share_mode_lockVolker Lendecke1-3/+3
2012-01-31s3: Delete streams on directoriesVolker Lendecke1-0/+11
2012-01-12s3: Put an indirection layer into share_mode_lockVolker Lendecke1-10/+10
Signed-off-by: Jeremy Allison <jra@samba.org>
2012-01-12s3: Introduce get_share_mode_lock_fresh()Volker Lendecke1-7/+3
This slightly simplifies the code path for all callers which assume that a share mode exists already. Only the callers in open_file_ntcreate and open_directory will ever create new share modes. Signed-off-by: Jeremy Allison <jra@samba.org>
2011-12-14s3: Fix raw.mux after UNUSED_SHARE_MODE_ENTRY was removedVolker Lendecke1-5/+55
See the large comment in notify_deferred_opens for an explanation Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Wed Dec 14 19:08:30 CET 2011 on sn-devel-104
2011-12-14s3:smbd/close: use talloc_get_type_abort() as private_data can't be NULLStefan Metzmacher1-5/+1
metze
2011-12-12s3:smbd/close: pass smbd_server_connection to notify_deferred_opens()Stefan Metzmacher1-9/+5
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Mon Dec 12 21:49:11 CET 2011 on sn-devel-104
2011-12-12s3:smbd/clode: pass smbd_server_connection as private_data to msg_close_file()Stefan Metzmacher1-3/+3
metze
2011-12-12s3:smbd/close: avoid usage of server_event_context()Stefan Metzmacher1-1/+1
metze
2011-12-02s3: Use autogenerated open_files.idlVolker Lendecke1-0/+1
2011-11-15Remove the check for FILE_WRITE_ATTRIBUTES from smb_set_file_time(). ItJeremy Allison1-4/+2
is called from places like fileio.c that need to update the write time on a file handle only open for write, without neccessarily having FILE_WRITE_ATTRIBUTES permission. Move all checks to before the smb_set_file_time() callers.
2011-10-17First part of fix for bug #8419 - Make VFS op "streaminfo" stackable.Frank Lahm1-3/+3
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Mon Oct 17 21:39:32 CEST 2011 on sn-devel-104
2011-10-14Add support for VFS op streaminfo chaining in all relevant VFS modules.Frank Lahm1-2/+2
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Fri Oct 14 03:26:06 CEST 2011 on sn-devel-104
2011-08-02s3: Pass sconn explicitly to schedule_deferred_open_message_smbVolker Lendecke1-1/+6
2011-08-02s3: Fix some nonempty blank linesVolker Lendecke1-3/+3
2011-07-20s3-auth Use struct auth_user_info_unix for unix_name and sanitized_usernameAndrew Bartlett1-1/+1
This is closer to the layout of struct auth_session_info in auth.idl Andrew Bartlett Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-05-31s3-globals Remove smbd_event_context() (use server_event_context())Andrew Bartlett1-1/+1
This has been a wrapper around server_event_context() for some time now, and removing this from dummmysmbd.c assists with library dependencies. Andrew Bartlett
2011-03-30s3-messages: make ndr_messaging.h part of messages.h.Günther Deschner1-1/+0
Guenther
2011-03-30s3-messages: only include messages.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-auth: smbd needs auth.hGünther Deschner1-0/+1
Guenther
2011-03-30s3: include smbd/smbd.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-build: only include transfer_file.h where needed.Günther Deschner1-0/+1
Guenther
2011-03-30s3-includes: only include system/filesys.h when needed.Günther Deschner1-0/+1
Guenther
2011-03-01s3-auth struct security_unix_token replaces UNIX_USER_TOKENAndrew Bartlett1-2/+2
2011-02-23Fix bug found against the new Mac client @ Connectathon. Mac clientsJeremy Allison1-1/+9
don't open with FILE_WRITE_ATTRIBUTES when just doing a write, so updating the write time on close fails as smb_set_file_time() now (correctly) checks for FILE_WRITE_ATTRIBUTES in the access_mask before allowing client time update. This is an internal time update being done on a close, not a handle-based client request.
2011-02-22s3-auth Rename auth_serversupplied_info varaiables: server_info -> session_infoAndrew Bartlett1-1/+1
These variables, of type struct auth_serversupplied_info were poorly named when added into 2001, and in good consistant practice, this has extended all over the codebase in the years since. The structure is also not ideal for it's current purpose. Originally intended to convey the results of the authentication modules, it really describes all the essential attributes of a session. This rename will reduce the volume of a future patch to replaced these with a struct auth_session_info, with auth_serversupplied_info confined to the lower levels of the auth subsystem, and then eliminated. (The new structure will be the output of create_local_token(), and the change in struct definition will ensure that this is always run, populating local groups and privileges). Andrew Bartlett Signed-off-by: Stefan Metzmacher <metze@samba.org>
2011-02-10Put OpenDir() back the way it was - don't overload with an fsp arg. Create ↵Jeremy Allison1-2/+1
OpenDir_fsp for new usage. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Thu Feb 10 02:43:31 CET 2011 on sn-devel-104
2011-02-09Allow SMB2_FIND to actually use the open fd handle if we support fdopendir. ↵Jeremy Allison1-1/+2
Fallback to pathname opendir if not.