1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00
samba-mirror/source3/smbd
Volker Lendecke aef8aad638 smbd: Fix a profile problem
When trying to read a profile, under certain circumstances Windows tries
to read with its machine account first. The profile previously written
was stored with an ACL that only allows access for the user and not
the machine. Windows should get an NT_STATUS_ACCESS_DENIED when using
the machine account, making it retry with the user account (which would
then succeed).

Samba under these circumstances erroneously gives
NT_STATUS_OBJECT_PATH_NOT_FOUND, which makes Windows give up and not
retry. The reasons is the "dropbox" patch in unix_convert, turning EACCESS
on the last path component to OBJECT_PATH_NOT_FOUND. This patch makes
the dropbox behaviour only kick in when we are creating a file. I think
this is an abstraction violation. unix_convert() should not have to know
about the create_disposition, but given that we have pathname resolution
separated from the core open code right now this is the best we can do.

Signed-off-by: Volker Lendecke <Volker.Lendecke@SerNet.DE>
Reviewed-by: Jeremy Allison <jra@samba.org>
2013-07-09 12:22:00 -07:00
..
aio.c s3:smbd/aio mark file as modified in the SMB2 case 2013-06-25 12:53:46 +02:00
avahi_register.c
blocking.c s3:smbd: s/struct timed_event/struct tevent_timer 2013-02-19 23:47:56 +01:00
close.c s3:smbd/close remove filesystem lock before removing sharemode 2013-06-25 14:48:44 +02:00
conn_idle.c Fix bug #9733 - smbcontrol close-share is not working. 2013-03-22 20:10:11 +01:00
conn_msg.c
conn.c Add uint32_t share_access to vuid_cache_entry. 2013-01-09 15:28:48 +11:00
connection.c s3:smbd: remove unused claim_connection/yield_connection 2012-10-19 12:15:03 +02:00
dfree.c s3:smbd: in sys_disk_free(), improve a debug message 2012-09-04 20:39:20 +02:00
dir.c smbd: Remove an unused variable 2013-06-12 01:00:44 +02:00
dmapi.c
dnsregister.c
dosmode.c smbd: Change logging when SET_OFFLINE is not supported 2013-06-06 04:30:26 +02:00
durable.c s3:smbd: remove old comment about scavenger timer from vfs_default_durable_reconnect() 2013-06-04 11:07:11 -07:00
error.c
fake_file.c Add 'bool use_privs' to smbd_calculate_access_mask(). 2012-09-15 00:37:49 +02:00
file_access.c smbd: Convert can_delete_file_in_directory to synthetic_smb_fname 2013-04-17 14:50:01 -07:00
fileio.c s3:smbd: s/struct timed_event/struct tevent_timer 2013-02-19 23:47:56 +01:00
filename.c smbd: Fix a profile problem 2013-07-09 12:22:00 -07:00
files.c smbd: Convert file_new to synthetic_smb_fname 2013-04-17 14:50:01 -07:00
globals.c s3:smbd: move initialization of the smbd_shim from smbd_init_globals() to main() 2012-10-19 12:14:58 +02:00
globals.h Remove the compound_related_in_progress state from the smb2 global state. 2013-05-07 17:58:45 +02:00
ipc.c s3:smbd: make use of smbXsrv_tcon for smb1 2012-06-25 20:55:06 +02:00
lanman.c s3-smbd: Don't leak subcntarr array. 2013-02-22 16:36:13 +01:00
mangle_hash2.c Check error returns from strupper_m() (in all reasonable places). 2012-08-09 12:06:54 -07:00
mangle_hash.c Check error returns from strupper_m() (in all reasonable places). 2012-08-09 12:06:54 -07:00
mangle.c loadparm: make the source3/ lp_ functions take an explicit TALLOC_CTX *. 2012-07-18 15:07:23 +09:30
message.c Make sure to set umask() before calling mkstemp(). 2013-03-06 01:16:34 +01:00
msdfs.c smbd: Convert remove_msdfs_link to synthetic_smb_fname 2013-04-17 14:50:01 -07:00
negprot.c s3:smbd: remove silly (SMB_OFF_T_BITS == 64) checks 2013-03-20 09:32:26 -07:00
notify_inotify.c s3:smbd: s/event_add_fd/tevent_add_fd and s/EVENT_FD_/TEVENT_FD_ 2013-02-19 23:48:01 +01:00
notify_internal.c smbd: Remove an optimization that became unnecessary 2013-03-26 13:16:39 +01:00
notify.c s3:smbd: s/struct event_context/struct tevent_context 2013-02-19 23:47:51 +01:00
ntquotas.c
nttrans.c smbd: Fix a profile problem 2013-07-09 12:22:00 -07:00
open.c Only do the 1 second delay for sharing violations for SMB1, not SMB2. 2013-05-07 17:58:45 +02:00
oplock_irix.c s3:smbd: s/event_add_fd/tevent_add_fd and s/EVENT_FD_/TEVENT_FD_ 2013-02-19 23:48:01 +01:00
oplock_linux.c Fix bug #8974 - Kernel oplocks are broken when uid(file) != uid(process). 2012-06-21 21:53:58 +02:00
oplock.c smbd: Obsolete MSG_SMB_OPEN_RETRY 2013-04-26 15:17:22 -07:00
password.c s3:smbd: pass smbXsrv_session instead of user_struct to session_claim() and session_yield() 2012-10-19 12:14:59 +02:00
perfcount.c loadparm: make the source3/ lp_ functions take an explicit TALLOC_CTX *. 2012-07-18 15:07:23 +09:30
pipes.c smbd: Convert open_np_file to synthetic_smb_fname 2013-04-17 14:50:01 -07:00
posix_acls.c smbd: Fix build on platforms that will not support var = {} initialisation 2013-05-27 11:57:00 +10:00
process.c smbd: Fix a const warning 2013-06-11 13:21:08 -07:00
proto.h smbd: We don't use DEFERRED_OPEN_ENTRY anymore 2013-04-26 15:17:22 -07:00
pysmbd.c pysmbd: Convert py_smbd_unlink to synthetic_smb_fname 2013-04-17 14:50:00 -07:00
quotas.c quota: move function again to its belonging ifdef block 2012-09-11 04:44:28 +02:00
reply.c smbd: Fix a profile problem 2013-07-09 12:22:00 -07:00
scavenger.c s3:smbd:smb2:scavenger: fix format error for debugging open_persistent_id in scavenger_timer() 2013-04-19 01:36:15 +02:00
scavenger.h s3:smbd: add a scavenger process for disconnected durable handles 2013-04-18 13:15:13 +02:00
seal.c
sec_ctx.c Fix bug #9329 - Directory listing with SeBackup can crash smbd. 2012-10-29 16:26:20 +01:00
server_exit.c Call smb_panic when we try to exit the server uncleanly. This gives us the normal traceback and memory dump, but also runs the normal panic action. 2013-03-27 22:58:36 +01:00
server_reload.c Fix bug 9900: is_printer_published GUID retrieval 2013-06-03 14:10:07 +02:00
server.c Fix bug #9166 - Starting smbd or nmbd with stdin from /dev/null results in "EOF on stdin" 2013-06-20 13:41:01 +02:00
service.c fileserver: raise the debug level for share connection from non IPC to 2 2013-04-19 12:27:56 -07:00
session.c s3:smbd: don't use (fill) sessionid.tdb in session_claim/yield any more. 2012-10-19 12:15:00 +02:00
sesssetup.c s3:smbd: keep global_client_caps and max_send from the first successful session setup 2013-03-20 09:32:26 -07:00
share_access.c s3: Fix some blank line endings 2012-10-20 09:06:12 +02:00
signing.c libcli/smb: pass hdr/len to smb_signing_check/sign_pdu() and skip the nbt header 2012-08-04 09:10:21 +02:00
smb2_break.c smbd: Remove unused reply_to_oplock_break_requests 2013-04-26 15:17:22 -07:00
smb2_close.c smbd: Convert smbd_smb2_close to cp_smb_filename 2013-04-17 14:49:56 -07:00
smb2_create.c smbd: Fix a profile problem 2013-07-09 12:22:00 -07:00
smb2_find.c s3:smb2_find: make use of SMBD_SMB2_* macros 2012-08-05 20:55:36 +02:00
smb2_flush.c s3:smb2_flush: make use of SMBD_SMB2_IN_BODY_PTR() 2012-08-05 20:55:35 +02:00
smb2_getinfo.c s3: Make SMB2_GETINFO multi-volume aware. 2013-02-08 21:44:37 +01:00
smb2_glue.c Add function smbd_smb2_unread_bytes(). 2013-04-19 14:10:51 -07:00
smb2_ioctl_dfs.c smb2_ioctl: split ioctl handler code on device type 2013-01-16 23:15:06 +01:00
smb2_ioctl_filesys.c smb2_ioctl: split ioctl handler code on device type 2013-01-16 23:15:06 +01:00
smb2_ioctl_named_pipe.c smb2_ioctl: split ioctl handler code on device type 2013-01-16 23:15:06 +01:00
smb2_ioctl_network_fs.c Fix warnings with mismatched sizes in arguments to DEBUG statements. 2013-01-19 12:14:13 +01:00
smb2_ioctl_private.h smb2_ioctl: split ioctl handler code on device type 2013-01-16 23:15:06 +01:00
smb2_ioctl.c smb2_ioctl: remove ioctl error response assumptions 2013-01-16 23:15:07 +01:00
smb2_keepalive.c
smb2_lock.c s3:smbd: remove struct member smbd_smb2_request.cancelled - it was only written 2012-09-22 10:19:00 +02:00
smb2_negprot.c s3:smb2_negprot: set the 'remote_proto' value 2013-01-09 09:11:20 +01:00
smb2_notify.c s3:smbd: remove struct member smbd_smb2_request.cancelled - it was only written 2012-09-22 10:19:00 +02:00
smb2_read.c s3:smb2_read: fix SMBD_SMB2_NUM_IOV_PER_REQ check for sendfile() support (bug #9341) 2012-10-30 16:49:26 +01:00
smb2_server.c Revert my accidental commit. 2013-05-23 06:53:17 +02:00
smb2_sesssetup.c s3:smbd: initialize session->global before calling session_claim 2012-10-19 12:14:59 +02:00
smb2_setinfo.c Rename set_sd() to set_sd_blob() - this describes what it does. 2012-08-30 10:08:50 -07:00
smb2_tcon.c s3:smbd: fill tcon->global->session_global_id 2012-10-19 12:15:02 +02:00
smb2_write.c s3:smbd: remove struct member smbd_smb2_request.cancelled - it was only written 2012-09-22 10:19:00 +02:00
smbd.h smbd: Fix a profile problem 2013-07-09 12:22:00 -07:00
smbXsrv_open.c s3:smbXsrv_open: add function smbXsrv_open_cleanup() 2013-04-18 13:15:11 +02:00
smbXsrv_session.c s3:smbXsrv_session: pass record in smbXsrv_session_global_traverse() 2013-02-19 12:10:21 +01:00
smbXsrv_tcon.c s3:smbXsrv_tcon: pass record in smbXsrv_tcon_global_traverse() 2013-02-19 12:10:22 +01:00
smbXsrv_version.c s3:smbd: add smbXsrv_version_* infrastructure 2012-06-25 20:55:05 +02:00
srvstr.c
statcache.c
statvfs.c s3: evaluate MNT_QUOTA and MNT_RDONLY in statvfs also on darwin 2012-07-05 22:00:52 +02:00
trans2.c smbd: Convert smb_file_rename_information to synthetic_smb_fname 2013-04-17 14:50:01 -07:00
uid.c Fixup the change_to_user_by_session() case as called from become_user_by_session() 2013-01-09 15:29:47 +11:00
utmp.c s3:smbd: use session_global_id as session number for pam and utmp 2012-10-19 12:15:00 +02:00
vfs.c Ensure the RECVFILE path in vfs_pwrite_data() operates on a blocking socket. 2013-04-20 01:04:05 +02:00