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

7363 Commits

Author SHA1 Message Date
Andreas Schneider
3dda917770 s3-smbd: Check return code of SMB_VFS_{L}STAT.
Found by Coverity.

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
2012-12-21 13:55:59 +01:00
Jeremy Allison
2148d86c7a Fix bug #9196 - defer_open is triggered multiple times on the same request.
get_deferred_open_message_state_smb2() is buggy in that it is checking
the wrong things to determine if an open is in the deferred state.

It checks if (smb2req->async_te == NULL) which is incorrect,
as we're not always async in a deferred open - remove this.

It should check instead state->open_was_deferred as this
is explicity set to 'true' when an open is going deferred,
so add this check.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Tue Dec 18 14:19:13 CET 2012 on sn-devel-104
2012-12-18 14:19:13 +01:00
Volker Lendecke
0fa3129686 s3: Fix clear_if_first for the async echo handler
A worker smbd is as not long-lived as the main smbd, but as the async
echo handler exits when the worker smbd does, passing "true" here is the
right thing to do and fixes our clear_if_first handling when the async
echo handler is active.

Reviewed-by: Christian Ambach <ambi@samba.org>

Autobuild-User(master): Christian Ambach <ambi@samba.org>
Autobuild-Date(master): Fri Dec  7 11:29:36 CET 2012 on sn-devel-104
2012-12-07 11:29:36 +01:00
Michael Adam
4eb53da3fe s3:smbd: fix a cut and paste error in a debug message
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed by: Jeremy Allison <jra@samba.org>
2012-12-05 16:35:07 -08:00
Michael Adam
2013bb9b4d s3:smbd: don't apply create/directory mask and modes in apply_default_perms()
The mask/mode parameters should only apply to a situation with only
pure posix permissions.
Once we are dealing with ACLs and inheritance, we need to do it correctly.

This fixes bug #9462: Users can not be given write permissions any more by default

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed by: Jeremy Allison <jra@samba.org>
2012-12-05 16:35:07 -08:00
Richard Sharpe
943797c232 Fix bug #9460 - Samba 3.6.x and Master respond incorrectly to FILE_STREAM_INFO requests.
Ensure we check the buffer size correctly.

Reviewed by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Dec  6 01:31:08 CET 2012 on sn-devel-104
2012-12-06 01:31:08 +01:00
Jeremy Allison
1c5c492f7e Remove unused append_parent_acl().
Get rid of a large chunk of unused code.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>

Autobuild-User(master): David Disseldorp <ddiss@samba.org>
Autobuild-Date(master): Tue Dec  4 11:59:30 CET 2012 on sn-devel-104
2012-12-04 11:59:30 +01:00
Stefan Metzmacher
8fbe39d513 s3:smbd/open: fall back to Builtin_Administrators if SYSTEM doesn't map to a group
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-12-02 18:32:36 +01:00
Stefan Metzmacher
139232656a s3:smbd/open: try the primary sid (user) as group_sid if the token has just one sid
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-12-02 18:32:04 +01:00
Stefan Metzmacher
0a3396b536 s3:smbd/open: use Builtin_Administrators as owner of files (if possible)
We do this if the idmap layer resolves Builtin_Administrators
as ID_TYPE_BOTH and if the current token has the
Builtin_Administrators SID or it's SYSTEM.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-12-02 18:31:00 +01:00
Volker Lendecke
d5693d99b8 Fix Bug 9422 - large read requests cause server to issue malformed reply
Reviewed by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Fri Nov 30 03:27:07 CET 2012 on sn-devel-104
2012-11-30 03:27:07 +01:00
Stefan Metzmacher
b3eb78c4f7 s4:smbd/open: add missing TALLOC_FREE(frame) to inherit_new_acl()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-11-28 12:21:42 +01:00
Christian Ambach
d6983f4704 s3:smbd/aio do not mark file modified during reads
this causes each file that is potentially just opened for reading to be
marked as modified and lots of file change notifications will be send

Signed-off-by: Christian Ambach <ambi@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>

Autobuild-User(master): Christian Ambach <ambi@samba.org>
Autobuild-Date(master): Tue Nov 20 21:02:34 CET 2012 on sn-devel-104
2012-11-20 21:02:34 +01:00
Jeremy Allison
c5ad5029fd More for #9374 - Allow smb2.acls torture test to pass against smbd with a POSIX ACLs backend.
Change can_delete_directory() to can_delete_directory_fsp(), as
we only ever call this from an open directory file handle.

This allows us to use OpenDir_fsp() instead of OpenDir().
OpenDir() re-checks the ACL on the directory, which may
refuse DIR_LIST permissions. OpenDir_fsp() does not. As
this is a file-server internal check to see if the directory
actually contains any files before setting delete on close,
we can ignore the ACL here (Windows does).

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Tue Nov 20 01:46:28 CET 2012 on sn-devel-104
2012-11-20 01:46:27 +01:00
Jeremy Allison
4985332b95 Add comments explaining exactly *why* we don't check FILE_READ_ATTRIBUTES when evaluating file/directory ACE's.
If we can access the path to this file, by
default we have FILE_READ_ATTRIBUTES from the
containing directory. See the section.
"Algorithm to Check Access to an Existing File"
in MS-FSA.pdf.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-11-19 13:16:09 +01:00
Jeremy Allison
cf1540b737 Another fix needed for bug #9236 - ACL masks incorrectly applied when setting ACLs.
Not caught by make test as it's an extreme edge case for strange
incoming ACLs. I only found this as I'm making raw.acls and smb2.acls
pass against 3.6.x and 4.0.0 with acl_xattr mapped onto a POSIX backend.

An incoming inheritable ACE entry containing only one permission,
WRITE_DATA maps into a POSIX owner perm of "-w-", which violates
the principle that the owner of a file/directory can always read.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Thu Nov 15 19:52:52 CET 2012 on sn-devel-104
2012-11-15 19:52:51 +01:00
Richard Sharpe
d10c7378d9 smbd_open_one_socket does not use the messaging_context variable so why pass it in?
Reviewed by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Wed Nov 14 02:19:46 CET 2012 on sn-devel-104
2012-11-14 02:19:46 +01:00
Richard Sharpe
ec423dc2eb A small error message fix in source3/smbd/server.c
Removes some incorrect info from an error message
(probably from its old place when it was copied).

Reviewed by: Jeremy Allison <jra@samba.org>
2012-11-14 00:35:43 +01:00
Andrew Bartlett
d6c7e9b1ed smbd: Remove NT4 compatability handling in posix -> NT ACL conversion
NT4 is long dead, and we should not change which ACL we return based
on what we think the client is.  The reason we should not do this, is
that if we are using vfs_acl_xattr then the hash will break if we do.
Additionally, it would require that the python VFS interface set the
global remote_arch to fake up being a modern client.

This instead seems cleaner and removes untested code (the tests are
updated to then handle the results of the modern codepath).

The supporting 'acl compatability' parameter is also removed.

Andrew Bartlett

Reviewed by: Jeremy Allison <jra@samba.org>
2012-11-13 22:48:19 +01:00
Andrew Bartlett
236977bf46 Change get_nt_acl_no_snum() to return an NTSTATUS, not a struct security_descriptor *.
Internally change the implementation to use SMB_VFS_GET_NT_ACL()
instead of SMB_VFS_FGET_NT_ACL() with a faked-up file struct.

Andrew Bartlett

Reviewed by: Jeremy Allison <jra@samba.org>
2012-11-13 22:48:19 +01:00
Andrew Bartlett
a4434297f1 smbd: Correctly set fsp->is_directory before dealing with ACLs
Change set_nt_acl_no_snum() to correctly set up the fsp.
This does a stat on a real fsp in set_nt_acl_no_snum.

Reviewed by: Jeremy Allison <jra@samba.org>
2012-11-13 22:48:19 +01:00
Andrew Bartlett
a6a01552ef pysmbd: Add SMB_ACL_EXECUTE to the mask set by make_simple_acl()
Signed-off-by: Andrew Bartlett <abartlet@samba.org>

Reviewed-by: Jelmer Vernooij <jelmer@samba.org>

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2012-11-12 00:05:12 +11:00
Arvid Requate
c06d602d7f s3:smbd: Fix typo in got_duplicate_group check
Reviewed by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Sat Nov 10 20:25:48 CET 2012 on sn-devel-104
2012-11-10 20:25:48 +01:00
Volker Lendecke
d236709d15 Remove two unused variables
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Wed Nov  7 17:18:06 CET 2012 on sn-devel-104
2012-11-07 17:18:06 +01:00
Stefan Metzmacher
3d9361612d s3:smbd: pass the current time to make_connection[_smb1]()
Otherwise smbstatus reports the wrong time for tree connects.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Christian Ambach <ambi@samba.org>

Autobuild-User(master): Christian Ambach <ambi@samba.org>
Autobuild-Date(master): Mon Nov  5 20:43:23 CET 2012 on sn-devel-104
2012-11-05 20:43:23 +01:00
Karolin Seeger
92e17d5fd0 smb2_server: Fix typo in comment.
Karolin

Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Fri Nov  2 15:40:22 CET 2012 on sn-devel-104
2012-11-02 15:40:22 +01:00
Michael Adam
73fa347507 s3:smbd:smb2: fix a comment typo in the crediting code.
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Nov  2 10:09:36 CET 2012 on sn-devel-104
2012-11-02 10:09:36 +01:00
Stefan Metzmacher
d8fc4cd25e s3:smb2_read: fix SMBD_SMB2_NUM_IOV_PER_REQ check for sendfile() support (bug #9341)
Reported-by: Sebastien LAVEZE <sebastien.laveze@mindspeed.com>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Tested-by: Sebastien LAVEZE <sebastien.laveze@mindspeed.com>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Tue Oct 30 16:49:26 CET 2012 on sn-devel-104
2012-10-30 16:49:26 +01:00
Michael Adam
382849ad99 s3:smbd:durable: remove a TODO comment about write time updates
This has been done.

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>

Autobuild-User(master): David Disseldorp <ddiss@samba.org>
Autobuild-Date(master): Mon Oct 29 20:12:18 CET 2012 on sn-devel-104
2012-10-29 20:12:18 +01:00
Jeremy Allison
3a4b755ce5 Fix bug #9329 - Directory listing with SeBackup can crash smbd.
When we do a become_root()/unbecome_root() pair to temporarily
raise privilege, this NULLs out the NT token. If we're within
a become_root()/unbecome_root() pair then return the previous
token on the stack as our NT token. This is what we should be
using to check against NT ACLs in the file server. This copes
with security context changing when removing a file on close
under the context of another user (when 2 users have a file
open, one sets delete on close and then the other user has
to actually do the delete).

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Mon Oct 29 16:26:20 CET 2012 on sn-devel-104
2012-10-29 16:26:20 +01:00
Andrew Bartlett
e146fe5ef9 pysmbd: Set umask to 0 during smbd operations 2012-10-26 17:26:21 +11:00
Andrew Bartlett
728e56b463 pysmbd: Remember to close files after setting the NT ACL 2012-10-26 17:26:20 +11:00
Andrew Bartlett
e107c6ace7 pysmbd: Add hook for unlink() so python scripts can remove xattr.tdb entries
If we do not provide a way to remove files from xattr.tdb, we can re-use the inode.

Andrew Bartlett
2012-10-26 17:26:20 +11:00
Michael Adam
52ace6767f s3:smbd:durable: factor stat checks out into vfs_default_durable_reconnect_check_stat()
This makes vfs_default_durable_reconnect() simpler to read
and it reduces code duplication in the failure case handling.

Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Thu Oct 25 23:03:13 CEST 2012 on sn-devel-104
2012-10-25 23:03:13 +02:00
Andrew Bartlett
3cdd888093 pysmbd: Fix pysmbd octal mode handling
It is clearly too long since Computer Science 101... ;-)

Andrew Bartlett
2012-10-25 17:01:52 +11:00
Volker Lendecke
3da5d964b9 s3: Fix some blank line endings
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Sat Oct 20 09:06:12 CEST 2012 on sn-devel-104
2012-10-20 09:06:12 +02:00
Volker Lendecke
75724d9eb1 s3: Use talloc_stackframe in token_contains_name_in_list 2012-10-20 07:21:26 +02:00
Michael Adam
7d05ff7726 s3:smbd:durable: store stat info for disconnected durables and check at reconnect.
At durable reconnect, we check the stat info stored in the cookie against the
current stat data from the file we just opened.  If any detail differs, we deny
the durable reconnect, because in that case it is very likely that someone
opened the file while the handle was disconnected, which has to be interpreted
as an oplock break.

Pair-programmed-with: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Oct 19 18:56:19 CEST 2012 on sn-devel-104
2012-10-19 18:56:19 +02:00
Michael Adam
660e90d391 s3:smbd/durable: remove an extra blank line from vfs_default_durable_reconnect()
Pair-programmed-with: Stefan Metzmacher <metze@samba.org>

Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2012-10-19 17:13:35 +02:00
Stefan Metzmacher
24d225f44e s3:smbd/durable: add write_time specific stuff to vfs_default_durable_cookie
metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>

Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Fri Oct 19 17:12:29 CEST 2012 on sn-devel-104
2012-10-19 17:12:29 +02:00
Stefan Metzmacher
137376391d s3:smbd/durable: update the low level write_time before disconnecting the file.
If we close the low level FD, we should better update the write_time
if needed.

It's not unlikely that the client doesn't reclaim the durable handle,
in that case we may not close the after the durable timeout.

In such a case we should make sure that we at least update the write time
on disconnect, this makes sure backup applications notice that
the file was changed.

metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-10-19 15:21:10 +02:00
Stefan Metzmacher
9e7bce5370 s3:smbd/durable: trigger pending write_time updates before disconnecting the file
We need to call the pending write time update handler immediately.
Which means we don't wait exactly 2 seconds before updating the write time
after the first write.

metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
2012-10-19 15:09:58 +02:00
Stefan Metzmacher
d4f369c470 s3:smbd: remove unused claim_connection/yield_connection
metze

Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:03 +02:00
Stefan Metzmacher
3eff700870 s3:smbd: don't call claim/yield_connection() in make_connection_snum/close_cnum()
This was used to maintain the connections.tdb database which is being removed.
We use info from the smbXsrv_tcon instead.

Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:03 +02:00
Stefan Metzmacher
f76436c6ea s3:smbd: fill tcon->global->session_global_id
metze

Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:02 +02:00
Gregor Beck
ac5c8909a9 s3:lib: remove unused sessionid_*() functions
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:01 +02:00
Gregor Beck
dbff58228e s3:smbd: don't use (fill) sessionid.tdb in session_claim/yield any more.
We use data from new smbXsrv_session instead.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:00 +02:00
Gregor Beck
d9ea786c86 s3:smbd/connection: use smbXsrv_tcon_traverse to count connections
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:00 +02:00
Gregor Beck
f588704640 s3:smbd:setup_new_vc_session: traverse sessions instead of connections to shutdown other smbds
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:00 +02:00
Gregor Beck
89cc865cab s3:smbXsrv_tcon: add smbXsrv_tcon_global_traverse()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
2012-10-19 12:15:00 +02:00