The branch, master has been updated via 65976d6 s3-vfs: Set errno in xattr emulation via cc3bdaa s3-vfs: Avoid loops in VFS modules: call _NEXT functions in xattr emulation via 898c5e1 s3-vfs: ensure we strictly free the talloc_stackframe via f9b9433 s4-selftest: Fix test name for samba.tests.dcerpc.bare via fd42bc1 librpc/idl: Make smb_acl_t public so we can pull/push it as a blob from d2d5fb1 libcli/smb: verify decrypted SMB2 pdus correctly
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 65976d680acd48aa9f59664f715fa9ce40185955 Author: Andrew Bartlett <abart...@samba.org> Date: Wed Aug 15 22:22:26 2012 +1000 s3-vfs: Set errno in xattr emulation The caller may check this errno. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Wed Aug 15 18:05:33 CEST 2012 on sn-devel-104 commit cc3bdaaf0a5586e0f840466719f9f8387c5cddd0 Author: Andrew Bartlett <abart...@samba.org> Date: Wed Aug 15 22:21:48 2012 +1000 s3-vfs: Avoid loops in VFS modules: call _NEXT functions in xattr emulation We need to call the next module in the stack otherwise we will loop if the stat call is in turn implemented in terms of extended attribute lookup. Andrew Bartlett commit 898c5e140ddca47eac9e2150fb571d6eac3ed7d2 Author: Andrew Bartlett <abart...@samba.org> Date: Wed Aug 15 21:22:18 2012 +1000 s3-vfs: ensure we strictly free the talloc_stackframe We must do this when leaving the function or else in development, we will panic. Andrew Bartlett commit f9b9433b752a663cdfda03967bd969cac5cf16bf Author: Andrew Bartlett <abart...@samba.org> Date: Wed Aug 15 20:33:46 2012 +1000 s4-selftest: Fix test name for samba.tests.dcerpc.bare commit fd42bc1846929d163cdf25a0e66feba16bffc442 Author: Andrew Bartlett <abart...@samba.org> Date: Wed Aug 15 20:33:27 2012 +1000 librpc/idl: Make smb_acl_t public so we can pull/push it as a blob ----------------------------------------------------------------------- Summary of changes: librpc/idl/smb_acl.idl | 2 +- source3/modules/vfs_posix_eadb.c | 9 +++++++-- source3/modules/vfs_xattr_tdb.c | 16 +++++++++------- source3/modules/wscript_build | 9 +++++++++ .../scripting/python/samba/tests/dcerpc/bare.py | 2 +- 5 files changed, 27 insertions(+), 11 deletions(-) Changeset truncated at 500 lines: diff --git a/librpc/idl/smb_acl.idl b/librpc/idl/smb_acl.idl index 9586958..856312f 100644 --- a/librpc/idl/smb_acl.idl +++ b/librpc/idl/smb_acl.idl @@ -48,7 +48,7 @@ interface smb_acl gid_t gid; } smb_acl_entry; - typedef struct { + [public] typedef struct { int size; int count; int next; diff --git a/source3/modules/vfs_posix_eadb.c b/source3/modules/vfs_posix_eadb.c index e1b90ff..fff7c11 100644 --- a/source3/modules/vfs_posix_eadb.c +++ b/source3/modules/vfs_posix_eadb.c @@ -52,6 +52,11 @@ static ssize_t posix_eadb_getattr(struct tdb_wrap *db_ctx, status = pull_xattr_blob_tdb_raw(db_ctx, talloc_tos(), name, fname, fd, size, &blob); + if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { + errno = ENOATTR; + return -1; + } + if (!NT_STATUS_IS_OK(status)) { DEBUG(10, ("posix_eadb_fetch_attrs failed: %s\n", nt_errstr(status))); @@ -293,9 +298,9 @@ static int posix_eadb_unlink(vfs_handle_struct *handle, } if (lp_posix_pathnames()) { - ret = SMB_VFS_LSTAT(handle->conn, smb_fname_tmp); + ret = SMB_VFS_NEXT_LSTAT(handle, smb_fname_tmp); } else { - ret = SMB_VFS_STAT(handle->conn, smb_fname_tmp); + ret = SMB_VFS_NEXT_STAT(handle, smb_fname_tmp); } if (ret == -1) { goto out; diff --git a/source3/modules/vfs_xattr_tdb.c b/source3/modules/vfs_xattr_tdb.c index 0352539..719ac0c 100644 --- a/source3/modules/vfs_xattr_tdb.c +++ b/source3/modules/vfs_xattr_tdb.c @@ -50,6 +50,7 @@ static ssize_t xattr_tdb_getxattr(struct vfs_handle_struct *handle, xattr_size = xattr_tdb_getattr(db, frame, &id, name, &blob); if (xattr_size < 0) { + errno = ENOATTR; TALLOC_FREE(frame); return -1; } @@ -74,9 +75,9 @@ static ssize_t xattr_tdb_fgetxattr(struct vfs_handle_struct *handle, DATA_BLOB blob; TALLOC_CTX *frame = talloc_stackframe(); - SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); + SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, TALLOC_FREE(frame); return -1); - if (SMB_VFS_FSTAT(fsp, &sbuf) == -1) { + if (SMB_VFS_NEXT_FSTAT(handle, fsp, &sbuf) == -1) { TALLOC_FREE(frame); return -1; } @@ -85,6 +86,7 @@ static ssize_t xattr_tdb_fgetxattr(struct vfs_handle_struct *handle, xattr_size = xattr_tdb_getattr(db, frame, &id, name, &blob); if (xattr_size < 0) { + errno = ENOATTR; TALLOC_FREE(frame); return -1; } @@ -128,7 +130,7 @@ static int xattr_tdb_fsetxattr(struct vfs_handle_struct *handle, SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); - if (SMB_VFS_FSTAT(fsp, &sbuf) == -1) { + if (SMB_VFS_NEXT_FSTAT(handle, fsp, &sbuf) == -1) { return -1; } @@ -165,7 +167,7 @@ static ssize_t xattr_tdb_flistxattr(struct vfs_handle_struct *handle, SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); - if (SMB_VFS_FSTAT(fsp, &sbuf) == -1) { + if (SMB_VFS_NEXT_FSTAT(handle, fsp, &sbuf) == -1) { return -1; } @@ -201,7 +203,7 @@ static int xattr_tdb_fremovexattr(struct vfs_handle_struct *handle, SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1); - if (SMB_VFS_FSTAT(fsp, &sbuf) == -1) { + if (SMB_VFS_NEXT_FSTAT(handle, fsp, &sbuf) == -1) { return -1; } @@ -272,9 +274,9 @@ static int xattr_tdb_unlink(vfs_handle_struct *handle, } if (lp_posix_pathnames()) { - ret = SMB_VFS_LSTAT(handle->conn, smb_fname_tmp); + ret = SMB_VFS_NEXT_LSTAT(handle, smb_fname_tmp); } else { - ret = SMB_VFS_STAT(handle->conn, smb_fname_tmp); + ret = SMB_VFS_NEXT_STAT(handle, smb_fname_tmp); } if (ret == -1) { goto out; diff --git a/source3/modules/wscript_build b/source3/modules/wscript_build index aaefd98..4043292 100644 --- a/source3/modules/wscript_build +++ b/source3/modules/wscript_build @@ -5,6 +5,7 @@ VFS_AUDIT_SRC = '''vfs_audit.c''' VFS_EXTD_AUDIT_SRC = '''vfs_extd_audit.c''' VFS_FULL_AUDIT_SRC = '''vfs_full_audit.c''' VFS_FAKE_PERMS_SRC = '''vfs_fake_perms.c''' +VFS_FAKE_ACLS_SRC = '''vfs_fake_acls.c''' VFS_RECYCLE_SRC = '''vfs_recycle.c''' VFS_NETATALK_SRC = '''vfs_netatalk.c''' VFS_DEFAULT_QUOTA_SRC = '''vfs_default_quota.c''' @@ -104,6 +105,14 @@ bld.SAMBA3_MODULE('vfs_fake_perms', internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_fake_perms'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_fake_perms')) +bld.SAMBA3_MODULE('vfs_fake_acls', + subsystem='vfs', + source=VFS_FAKE_ACLS_SRC, + deps='acl attr samba-util', + init_function='', + internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_fake_acls'), + enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_fake_acls')) + bld.SAMBA3_MODULE('vfs_recycle', subsystem='vfs', source=VFS_RECYCLE_SRC, diff --git a/source4/scripting/python/samba/tests/dcerpc/bare.py b/source4/scripting/python/samba/tests/dcerpc/bare.py index 08f4ec1..04d470e 100644 --- a/source4/scripting/python/samba/tests/dcerpc/bare.py +++ b/source4/scripting/python/samba/tests/dcerpc/bare.py @@ -17,7 +17,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # -"""Tests for samba.dcerpc.bare.""" +"""Tests for samba.tests.dcerpc.bare.""" from samba.dcerpc import ClientConnection import samba.tests -- Samba Shared Repository