1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

345 Commits

Author SHA1 Message Date
Jeremy Allison
4f8fac1b8e Pass all the non-inherited S4 RAW-ACL tests.
Jeremy.
2008-11-03 22:42:53 -08:00
Jeremy Allison
54eaf2de74 Get closer to passing S4 RAW-ACLs.
Jeremy.
2008-10-31 18:04:53 -07:00
Jeremy Allison
8c1a90c2e3 Start moving us closer to passing S4 RAW-ACL test using the vfs_acl_xattr module. Inheritance fails at the moment though.
Jeremy.
2008-10-30 16:13:03 -07:00
Jelmer Vernooij
4746f79d50 Use {u,}int64_t instead of SMB_BIG_{U,}INT. 2008-10-14 01:59:36 +02:00
Volker Lendecke
c530009401 Pass struct smb_request to file_free
on the way to get rid of chain_fsp
2008-10-13 19:32:38 +02:00
Volker Lendecke
c3fedcddd5 Pass struct smb_request to file_new
Goal is to remove the chain_fsp global variable
2008-10-13 19:32:38 +02:00
Volker Lendecke
3bbe5e88e5 Pass struct smb_request to file_fsp
The goal is to get rid of the chain_fsp global variable
2008-10-13 19:32:37 +02:00
Jeremy Allison
543c6a02ae For the vfs_acl_xattr.c module, make sure we map GENERIC file and directory bits
to specific bits every time a security descriptor is set. The S4 torture suite proves
that generic bits are not returned when querying an ACL set using them (ie. only
the specific bits are stored on disk).
Jeremy.
2008-10-08 18:06:58 -07:00
Jeremy Allison
da8bebaa64 Fix bug #5797 - Moving readonly files fails. Reported by infomail@lordb.de.
We don't need to deny a DELETE open on a readonly file (I'm also adding a s4
torture test for this), the set_file_disposition call will return
NT_STATUS_CANNOT_DELETE if the delete-on-close bit is set
on a readonly file (and we already do this).
Jeremy.
2008-09-26 15:17:14 -07:00
Jeremy Allison
458101b577 Fix bug 5761 "open of mangled directory name results in 'is a stream name'"
reported by Regan Heath <Regan.Heath@BridgeHeadSoftware.com>.
Jeremy.
2008-09-15 14:21:28 -07:00
Stefan Metzmacher
eb8dd6a811 smbd: fix the handling of create_options to pass RAW-OPEN
Some of the bits generate INVALID_PARAMETER and some bits
are ignored when they come from a client, that's why we need
to use bits from the ignored range for our internal usage.

metze
(This used to be commit 7b4c8a4e39f310eb450918fa841b0ea1b4af19f7)
2008-08-20 15:50:26 +02:00
Jeremy Allison
f9223a7139 If we're not allowing streams on this conn ptr,
then don't allow create_file() to call down to
create_file_unixpath() with a stream name.
Jeremy.
(This used to be commit 167d611b525db6d103a7f83fd5a19792be4e7745)
2008-07-24 18:12:12 -07:00
Volker Lendecke
c885ae01eb Remove current_user reference from printfsp.c
(This used to be commit 510f45d01a19ce1c226755ac42a328241098b2e0)
2008-06-26 13:13:23 +02:00
Volker Lendecke
40f5eab5eb Wrap the unix token info in a unix_user_token in auth_serversupplied_info
No functional change, this is a preparation for more current_user ref removal
(This used to be commit dcaedf345e62ab74ea87f0a3fa1e3199c75c5445)
2008-06-19 18:51:37 +02:00
Volker Lendecke
b6c125e4e0 Remove the current_user references from open.c
current_user_info was "only" used in a debug msg, and current_user.ut.uid is
also available via conn->server_info
(This used to be commit d0386914ff0f7b0f1edc3302fdc6a25f211712fa)
2008-06-15 13:41:16 +02:00
Volker Lendecke
d49de28f11 Remove the current_user reference from fake_file.c
The current vuid is not only available there, it is also in the current
smb_request structure.
(This used to be commit c8fd5eef32a86888c7a28317f0fdf717a26b7d4c)
2008-06-15 13:37:53 +02:00
Volker Lendecke
5bda9a8af0 Remove "user" from connection_struct
(This used to be commit 368454a27cb53a408ec416cbf37235b304592fb5)
2008-05-10 11:17:01 +02:00
Jeremy Allison
b430b38220 Remove the "stat_open()" function, flag, and all associated code. It was only
being (correctly) used in the can_read/can_write checks for hide unreadable/unwritable
and this is more properly done using the functions in smbd/file_access.c.
Preparing to do NT access checks on all file access.
Jeremy.
(This used to be commit 6bfb06ad95963ae2acb67c4694a98282d3b29faa)
2008-05-02 17:22:10 -07:00
Jeremy Allison
85dc0ad7be Rename inherit_access_acl() -> inherit_access_posix_acl() to make use clear.
Jeremy.
(This used to be commit b739c7f1cdb2b19a380b06681b00dcf490d788a9)
2008-05-02 12:54:53 -07:00
Michael Adam
0db7aba8af Remove redundant parameter fd from SMB_VFS_CLOSE().
Now all those redundant fd's have vanished from the VFS API.

Michael
(This used to be commit 14294535512a7f191c5008e622b6708e417854ae)
2008-04-21 00:22:42 +02:00
Michael Adam
3756467db6 Move the posix pending close functionality down into the VFS layer.
This hides the pending close fds from the outside. Call order
of SMB_VFS_CLOSE is reversed. Originally, it was:

fd_close -> fd_close_posix -> SMB_VFS_CLOSE -> close

And now it is:

fd_close -> SMB_VFS_CLOSE -> fd_close_posix -> close

This is in preparation of removing the fd parameter
from the SMB_VFS_CLOSE function. But it is also the right
place for the pending close calls anyways.

Michael
(This used to be commit 3cf56b124a2886c6260455bba4bf77d08e9a4f77)
2008-04-21 00:21:23 +02:00
Stefan Metzmacher
2ccf50256e locking: store the write time in the locking.tdb
This is needed to implement the strange write time update
logic later. We need to store 2 time timestamps to
distinguish between the time the file system had before
the first client opened the file and a forced timestamp update.

metze
(This used to be commit 6aaa2ce0eeb46f6735ec984a2e7aadde7a7f456d)
2008-04-07 12:29:25 +02:00
Jeremy Allison
380fcfa600 Fix S3 to pass the test_raw_oplock_exclusive3 test.
Jeremy.
(This used to be commit 028302fac53083d66c969b876db1d831e53b8e35)
2008-03-11 12:37:01 -07:00
Jeremy Allison
6cdd527fed Fix debug messages.
Jeremy.
(This used to be commit d265cedb55b07c6b8a13b9632fbdf8a05fbba886)
2008-02-22 16:12:57 -08:00
Volker Lendecke
2a78eb9c0d Fix a ton of IBM checker uninitialized variable warnings
SET_STAT_INVALID only sets nlink, not the other fields

We might consider to change SET_STAT_INVALID to always do ZERO_STRUCT
(This used to be commit 8cf8c5b2034fe093b5db7f069bc6be8d328399bf)
2008-01-22 09:23:34 +01:00
Volker Lendecke
b1017bb551 Free case_state earlier
Found by a "set but never used" warning. Thanks to talloc_tos() this was not
really a bug, but this way the code becomes much clearer.
(This used to be commit b326f11dc39a8ce20d957aac976be0cf7108ba9d)
2008-01-20 17:44:40 +01:00
Volker Lendecke
896ec68181 NT_STATUS_OBJECT_NAME_NOT_FOUND also means "no streams around :-)"
(This used to be commit 96b9a7b3eb92c9f133a3f43ffc4d57d0212e4ebd)
2008-01-20 14:44:39 +01:00
Jeremy Allison
0bb6fb7b6f Couple of minor fixes for POSIX pathname processing in the
new stream code. (1) In smbd/filename, don't split the name at
':' if we know it's a posix path (this should be parameterized....).
(2). When calling posix_mkdir, we get the flag FILE_FLAG_POSIX_SEMANTICS
passed to open_directory(). I know for a posix client lp_posix_pathnames
should be true (which is checked for in is_ntfs_stream_name() but we
have an explicit flag here, so let's use it.
Jeremy.
(This used to be commit 7bb7a0def6518784befa75e5303289d2b4d36dd4)
2008-01-19 21:53:49 -08:00
Volker Lendecke
1069cfe4ad Add streams support
This is the core of the streams support. The main change is that in
files_struct there is now a base_fsp pointer that holds the main file open
while a stream is open. This is necessary to get the rather strange delete
semantics right: You can't delete the main file while a stream is open without
FILE_SHARE_DELETE, and while a stream is open a successful unlink of the main
file leads to DELETE_PENDING for all further access on the main file or any
stream.
(This used to be commit 6022873cc155bdbbd3fb620689715f07a24d6ed1)
2008-01-19 23:25:36 +01:00
Volker Lendecke
b36a78837f delete on close even prevents stat opens
(This used to be commit 85fe7f3f6ed4aae76e5cf31ab689b2dfacfd74de)
2008-01-12 20:11:10 +01:00
Volker Lendecke
4c0ca86051 There's no point in calling FLOCK on a non-existing fd
(This used to be commit 9ff79f231f1206631662b5c521ecddf5df9141c0)
2008-01-12 20:11:10 +01:00
Volker Lendecke
3cc3b9e187 use talloc_tos in a few more places
(This used to be commit 65dd869bea351010c67f02046ae4134bdada1a4c)
2008-01-10 13:19:58 +01:00
Jeremy Allison
253fbf1a6e Make use of talloc_pool in the main codepaths. Remove the sub-contexts.
Jeremy.
(This used to be commit bc932b8ad4396f76b71c43efe9a6346f89c3632c)
2008-01-09 17:11:04 -08:00
Volker Lendecke
c16a00b0af Replace an uninitialized variable
Reported by the IBM checker
(This used to be commit 48f61e4b9fce5ea4f4bc3cf55530bb757c0def07)
2008-01-09 10:34:27 +01:00
Michael Adam
b2182c11ea Remove redundant parameter fd from SMB_VFS_FCHMOD_ACL().
Michael
(This used to be commit 7b201c177b3668f54751ba17d6a0b53ed913e7f7)
2008-01-08 01:14:24 +01:00
Michael Adam
327cc04da5 Remove redundant parameter fd from SMB_VFS_KERNEL_FLOCK().
Michael
(This used to be commit 195c519377c2fdc655e25760b52bc0694b8dda81)
2008-01-07 17:14:20 +01:00
Michael Adam
b457b94bb8 Remove redundant parameter fd from SMB_VFS_FTRUNCATE().
Michael
(This used to be commit 2ad66050a0452b8e7e08b1e7a01efa00c72fd451)
2008-01-07 15:59:02 +01:00
Michael Adam
670909cb07 Remove redundant parameter fd from SMB_VFS_FCHOWN().
Michael
(This used to be commit fbb193db3e0dc51cb000ae406a68bc547f31d9ab)
2008-01-07 15:59:02 +01:00
Michael Adam
e614dec27f Remove redundant parameter fd from SMB_VFS_FCHMOD().
Michael
(This used to be commit a54d5604da556d1250ca9948d4acc4a187a9fede)
2008-01-07 15:59:02 +01:00
Michael Adam
87a684f7fc Remove redundant parameter fd from SMB_VFS_FSTAT().
Michael
(This used to be commit 0b86c420be94d295f6917a220b5d699f65b46711)
2008-01-07 15:59:01 +01:00
Michael Adam
05352cf2cb Remove superfluous parameter fd from SMB_VFS_FSET_NT_ACL().
Michael
(This used to be commit 4f2d139a186048f08180378a877b69d2f80ad51f)
2008-01-06 23:08:00 +01:00
Jeremy Allison
c6a2292724 Using a bool with a logical operation. IBM checker caught.
Jeremy.
(This used to be commit 7f9fe7da1e25bcc730f4c4226bf77f6d39b5ace4)
2008-01-04 23:17:38 -08:00
Jeremy Allison
9254bb4ef1 Refactor the crypto code after a very helpful conversation
with Volker. Mostly making sure we have data on the incoming
packet type, not stored in the smb header.
Jeremy.
(This used to be commit c4e5a505043965eec77b5bb9bc60957e8f3b97c8)
2008-01-04 12:56:23 -08:00
Volker Lendecke
31d3f5726a Use NULL instead of 0
"struct security_descriptor" has pointers, not integers inside
(This used to be commit 13158014e3b05e44eea897fbcf470957301c5c97)
2008-01-01 13:13:31 +01:00
Volker Lendecke
33f01360e0 Fix setting the initial permission bits
This fixes a make test failure on Solaris. When creating a new file,
file_set_dosmode() called from open_file_ntcreate calculates a new permission
mask, very likely different from what had been calculated in
open_file_ntcreate. Further down we overwrote the newly calculated value with
SMB_FCHMOD_ACL, ignoring what file_set_dosmode had calculated.

Why did Linux not see this? fchmod_acl on a newly created file without acls
would not retrieve an acl at all, whereas under Solaris acl(2) returns
something even for files with just posix permissions returns something.

Jeremy, given that we have very similar code in 3.0.28 this might also explain
some of the bug reports that people have concerning ACLs on new files.

Volker

P.S: This one took a while to find...
(This used to be commit 2135dfe91bf1ae114a18c15286b535662200677d)
2007-12-28 08:52:29 +01:00
Volker Lendecke
250c57ccfb We need to return the correct atime
On systems with nanosecond atime we need to re-stat after messing with the fd,
at least Solaris 10 updates atime after we stat(2)ed the file.
(This used to be commit 6e6ec0a563f8b7e3d4618ce60e776bcce53f40c4)
2007-12-26 14:55:57 +01:00
Michael Adam
e47520f222 Remove redundant connection_struct from fd_close() parameter list.
Michael
(This used to be commit 3611cc8561cf837adea83fc7c16ca7535f188466)
2007-12-22 02:01:32 +01:00
Michael Adam
4773973300 Remove redundant connection_struct from fd_close_posix() parameter list.
Michael
(This used to be commit f3365b74ac016eaee1e82eef769dd618af5df201)
2007-12-22 02:01:32 +01:00
Volker Lendecke
39ea0edbbe separate out create_file_unixpath()
(This used to be commit deaacf971e0fbffd0e5fe24f225ebf645a77e133)
2007-12-11 16:16:54 +01:00
Volker Lendecke
3063f85a72 Move more stuff out of the way
(This used to be commit ae422fce01cd7520d6dd72e08719a5cd003cb640)
2007-12-11 16:16:54 +01:00