summaryrefslogtreecommitdiff
path: root/source3/smbd
AgeCommit message (Collapse)AuthorFilesLines
2012-07-10Cope with a (non-security) open race we've had for ever as NTCreateX isn't ↵Jeremy Allison1-0/+25
atomic on POSIX. On open without create, the file did exist, but some other (local or NFS) process either renamed/unlinked and re-created the file with different dev/ino after we walked the path, but before we did the open. We could retry the open but it's a rare enough case it's easier to just fail the open to prevent creating any problems in the open file db having the wrong dev/ino key. Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Jul 10 21:57:33 CEST 2012 on sn-devel-104
2012-07-10Now we have a guaranteed indication of a file being created, use it to set ↵Jeremy Allison1-12/+8
the create disposition correctly.
2012-07-10Add function fd_open_atomic() which uses O_CREAT|O_EXCL to return a ↵Jeremy Allison1-4/+107
guaranteed indication of creation of a new file.
2012-07-10Simplify the logic in open_file() some more.Jeremy Allison1-48/+36
Move the inheritance work into the if block where we created the file. We can never have created the file (and thus need no inheritance) for a stat-open. Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Tue Jul 10 03:30:22 CEST 2012 on sn-devel-104
2012-07-09Simplify the logic in open_file().Jeremy Allison1-22/+15
Move the fstat call into the block which opens a file descriptor. Remove the stat() call in the stat-open case. We already failed the open if !file_existed.
2012-07-09Make check_same_stat() and check_same_dev_ino() common functions.Jeremy Allison2-31/+0
2012-07-09Factor out check_same_dev_ino() from check_same_stat() so it can be called ↵Jeremy Allison1-2/+15
separately.
2012-07-05s3: evaluate MNT_QUOTA and MNT_RDONLY in statvfs also on darwinBjörn Jacke1-1/+1
2012-07-04s3: if we know a file is immutable, report it to be readonlyBjörn Jacke1-0/+6
on *BSD we get the immutable flag via st_flags, we should use that if possible.
2012-07-03s3-smbd: Remove deprecated 'share modes' option.Andreas Schneider1-4/+0
2012-07-03s3: Fix Coverity ID 709217 Dereference after null checkVolker Lendecke1-2/+10
A few lines before we did check for x != NULL. I think this might fix a potential remote crash. Signed-off-by: Michael Adam <obnox@samba.org> Autobuild-User(master): Michael Adam <obnox@samba.org> Autobuild-Date(master): Tue Jul 3 15:30:17 CEST 2012 on sn-devel-104
2012-07-03s3: Fix Coverity ID 709218 Uninitialized pointer readVolker Lendecke1-0/+5
Signed-off-by: Michael Adam <obnox@samba.org>
2012-07-03s3:smbd: Include smbXsrv.h before vfs.h (in smbd.h) so that the smbXsrv ↵Michael Adam1-1/+1
structures are available This is currently needed for files_struct and connection_struct that contain backlinks to smbXsrv_open and smbXsrv_tcon, respectively. Finally, these backlinks to the smb level structures should be removed.
2012-07-03s3:smbd:smb2: fix prototype of make_connection_smb2() to use smbXsrv_tconMichael Adam1-2/+1
instead of internal smbXsrv_tcon0.
2012-07-03s3:smbd: include smbXsrv.h before smbd/proto.h to have the smbXsrv_ structs ↵Michael Adam1-0/+1
available
2012-07-03s3:smbd:smb2: change smbXsrv_tcon0 to smbXsrv_tcon in ↵Michael Adam1-1/+1
smbd_smb2_request_check_tcon() smbXsrv_tcon0 is the internal name for the (current) version0 of the structure. Externally, only smbXsrv_tcon should be used.
2012-07-03s3:smbd:smb2: change smbXsrv_session0 to smbXsrv_session in struct user_struct.Michael Adam1-1/+1
smbXsrv_session0 is the internal name of (current) version 0 of the structure. Externally, only smbXsrv_session should be used.
2012-06-30Don't allow asynchronous creates to be canceled in SMB2.Jeremy Allison3-3/+20
Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Sat Jun 30 04:10:02 CEST 2012 on sn-devel-104
2012-06-30Make schedule_deferred_open_message_smb() return an indication of success.Jeremy Allison2-5/+6
2012-06-30Make schedule_deferred_open_message_smb2() return an indication of success.Jeremy Allison2-7/+9
2012-06-30Allow for async opens.Jeremy Allison1-4/+35
If the SMB_VFS_OPEN() function returns -1, EINTR -> NT_STATUS_RETRY, then queue the open up to be completed when the async open completes.
2012-06-30Add new bool field async_open to struct deferred_open_record. Not used yet.Jeremy Allison1-0/+4
2012-06-30Fix defer_open() fuction in the open code path to cope with a NULL lck ↵Jeremy Allison1-11/+16
parameter.
2012-06-30Add uint64_t mid field to the files_struct.Jeremy Allison1-0/+1
Ensure it is initialized so we know what mid created this file.
2012-06-29s3:smbd: make use of smbXsrv_open for smb1/2/3Stefan Metzmacher9-141/+73
This makes sure we generate unique persistent file ids, which are stored in smbXsrv_open_global.tdb. Pair-Programmed-With: Michael Adam <obnox@samba.org> metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Fri Jun 29 21:01:11 CEST 2012 on sn-devel-104
2012-06-29s3:smbd: add smbXsrv_open* infrastructureStefan Metzmacher3-0/+1099
Pair-Programmed-With: Michael Adam <obnox@samba.org> metze
2012-06-29s3: fix the logic in bsd_statvfsBjörn Jacke1-1/+1
2012-06-29s3:smb2_server: remove max_charge check in ↵Stefan Metzmacher1-16/+0
smbd_smb2_request_verify_creditcharge() The client can send any credit charge value, it's ok to send more than needed. metze Signed-off-by: Michael Adam <obnox@samba.org>
2012-06-29s3: merge bsd_statvfs and darwin_statvfsBjörn Jacke1-53/+31
2012-06-28Replace all uses of setXX[ug]id() and setgroups with samba_setXX[ug]id() calls.Jeremy Allison1-1/+2
Will allow thread-specific credentials to be added by modifying the central definitions. Deliberately left the setXX[ug]id() call in popt as this is not used in Samba.
2012-06-29s3:smb2_server: make the logic in smbd_smb2_request_verify_creditcharge() ↵Stefan Metzmacher1-11/+23
simpler We just need a max_charge variable to make the algorithm independent of multi_credit support. metze
2012-06-29s3:smb2_server: simplify smbd_smb2_request_verify_creditcharge() a bit.Stefan Metzmacher1-6/+1
A credit charge of 0 is really not a special case, it just means the same as 1. metze
2012-06-29s3:smb2_negprot: support SMB2_CAP_LARGE_MTU on everything but port 139Stefan Metzmacher1-5/+8
In future we'll have other transports like RDMA. This makes NBT (tcp port 139) special instead of port 445. metze
2012-06-29s3:smb2_server: grant extra credits for multi-credit requestsStefan Metzmacher1-2/+10
metze
2012-06-29s3:smb2_server: implement credit granting similar to windowsStefan Metzmacher2-19/+53
This makes it much easier to compare traces. metze
2012-06-29s3:smb2_server: make sure sequence numbers don't wrap at UINT64_MAXStefan Metzmacher1-2/+17
metze
2012-06-29s3:smb2_server: make sure we don't grant more credits than we allowStefan Metzmacher2-35/+92
If the client hasn't consumed the lowest seqnum, but the distance between lowest and highest seqnum has reached max credits. In that case we should stop granting credits. metze
2012-06-29s3:smb2_server: check the credit_charge against the already granted creditsStefan Metzmacher1-7/+12
metze
2012-06-29s3:smb2_server: split out a smb2_validate_sequence_number() functionStefan Metzmacher1-40/+77
metze
2012-06-29s3:smb2_server: clear sequence window if we got the lowest sequence idStefan Metzmacher1-2/+2
Otherwise we'll never consume sequence id '0'. metze
2012-06-29s3:smb2_server: fix calculation of the next bitmap_offsetStefan Metzmacher1-1/+1
metze
2012-06-29s3:smb2_server: remove unused and confusing ↵Stefan Metzmacher1-7/+4
DEFAULT_SMB2_MAX_CREDIT_BITMAP_FACTOR metze
2012-06-29s3:smb2_server: call smbd_smb2_request_validate() also in ↵Stefan Metzmacher1-0/+6
smbd_smb2_first_negprot() We need to consume message_id 0, for SMB1 negprot starts. metze
2012-06-29s3:smb2_server: start the connection with one credit granted to the clientStefan Metzmacher1-1/+1
metze
2012-06-28s3: fine tune and clean up statvfs testsBjörn Jacke1-2/+2
This should also fix the build on Tru64. Tru64 has a POSIX compliant statvfs() function while most *BSD systems ignore POSIX. Autobuild-User(master): Björn Jacke <bj@sernet.de> Autobuild-Date(master): Thu Jun 28 23:07:23 CEST 2012 on sn-devel-104
2012-06-28s3:smbd: change nt_open_pipe() to uint16_t pnum/fnumStefan Metzmacher1-3/+3
This is SMB1 code... metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Thu Jun 28 14:47:45 CEST 2012 on sn-devel-104
2012-06-28s3:smb2_create: add usefull DEBUG() messageStefan Metzmacher1-0/+3
All calls which take an file handle have the same, so we should also log it, when we create a handle. metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Thu Jun 28 12:41:49 CEST 2012 on sn-devel-104
2012-06-28s3:smbd/files: fsp->fnum is uint64_t not int!Stefan Metzmacher1-3/+3
metze
2012-06-27s3-param: Rename loadparm_s3_context -> loadparm_s3_helpersAndrew Bartlett2-2/+2
This helps clarify the role of this structure and wrapper function. The purpose here is to provide helper functions to the lib/param loadparm_context that point back at the s3 lp_ functions. This allows a struct loadparm_context to be passed to any point in the code, and always refer to the correct loadparm system. If this has not been set, the variables loaded in the lib/param code will be returned. As requested by Michael Adam. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Wed Jun 27 17:11:16 CEST 2012 on sn-devel-104
2012-06-26s3: Restore async i/o with the "native" AIO interfaceVolker Lendecke2-4/+1
eff3609 moved the async signal handler initialization to later in the process to enable aio_fork and aio_pthread on platforms without realtime signals. This commit broke the use of the native aio interface. aio_pending_size is initialized to 0, so aio.c will not allow async i/0 at all if modules do not set that variable correctly. Initialize to 100 right from the start. Signed-off-by: Stefan Metzmacher <metze@samba.org> Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Tue Jun 26 14:08:22 CEST 2012 on sn-devel-104