The branch, v3-2-test has been updated via e9bb3d5067b74a29beb778f85687829778e42b5b (commit) from 2f460915111066d79f5dc9b4ae4d003918d06852 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test - Log ----------------------------------------------------------------- commit e9bb3d5067b74a29beb778f85687829778e42b5b Author: Volker Lendecke <[EMAIL PROTECTED]> Date: Mon Jan 21 20:24:23 2008 +0100 Hide streams from the EA API ----------------------------------------------------------------------- Summary of changes: source/include/smb.h | 2 ++ source/modules/vfs_streams_xattr.c | 14 ++++++-------- source/smbd/trans2.c | 8 ++++++-- 3 files changed, 14 insertions(+), 10 deletions(-) Changeset truncated at 500 lines: diff --git a/source/include/smb.h b/source/include/smb.h index 2542111..7de3568 100644 --- a/source/include/smb.h +++ b/source/include/smb.h @@ -1904,6 +1904,8 @@ struct ea_list { #define SAMBA_POSIX_INHERITANCE_EA_NAME "user.SAMBA_PAI" /* EA to use for DOS attributes */ #define SAMBA_XATTR_DOS_ATTRIB "user.DOSATTRIB" +/* Prefix for DosStreams in the vfs_streams_xattr module */ +#define SAMBA_XATTR_DOSSTREAM_PREFIX "user.DosStream." #define UUID_SIZE 16 diff --git a/source/modules/vfs_streams_xattr.c b/source/modules/vfs_streams_xattr.c index 965d57f..766e7d1 100644 --- a/source/modules/vfs_streams_xattr.c +++ b/source/modules/vfs_streams_xattr.c @@ -26,8 +26,6 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_VFS -#define XATTR_DOSSTREAM_PREFIX "user.DosStream." - struct stream_io { char *base; char *xattr_name; @@ -140,7 +138,7 @@ static int streams_xattr_stat(vfs_handle_struct *handle, const char *fname, } xattr_name = talloc_asprintf(talloc_tos(), "%s%s", - XATTR_DOSSTREAM_PREFIX, sname); + SAMBA_XATTR_DOSSTREAM_PREFIX, sname); if (xattr_name == NULL) { errno = ENOMEM; goto fail; @@ -187,7 +185,7 @@ static int streams_xattr_lstat(vfs_handle_struct *handle, const char *fname, } xattr_name = talloc_asprintf(talloc_tos(), "%s%s", - XATTR_DOSSTREAM_PREFIX, sname); + SAMBA_XATTR_DOSSTREAM_PREFIX, sname); if (xattr_name == NULL) { errno = ENOMEM; goto fail; @@ -239,7 +237,7 @@ static int streams_xattr_open(vfs_handle_struct *handle, const char *fname, } xattr_name = talloc_asprintf(talloc_tos(), "%s%s", - XATTR_DOSSTREAM_PREFIX, sname); + SAMBA_XATTR_DOSSTREAM_PREFIX, sname); if (xattr_name == NULL) { errno = ENOMEM; goto fail; @@ -373,7 +371,7 @@ static int streams_xattr_unlink(vfs_handle_struct *handle, const char *fname) } xattr_name = talloc_asprintf(talloc_tos(), "%s%s", - XATTR_DOSSTREAM_PREFIX, sname); + SAMBA_XATTR_DOSSTREAM_PREFIX, sname); if (xattr_name == NULL) { errno = ENOMEM; goto fail; @@ -403,7 +401,7 @@ static NTSTATUS walk_xattr_streams(connection_struct *conn, files_struct *fsp, NTSTATUS status; char **names; size_t i, num_names; - size_t prefix_len = strlen(XATTR_DOSSTREAM_PREFIX); + size_t prefix_len = strlen(SAMBA_XATTR_DOSSTREAM_PREFIX); status = get_ea_names_from_file(talloc_tos(), conn, fsp, fname, &names, &num_names); @@ -414,7 +412,7 @@ static NTSTATUS walk_xattr_streams(connection_struct *conn, files_struct *fsp, for (i=0; i<num_names; i++) { struct ea_struct ea; - if (strncmp(names[i], XATTR_DOSSTREAM_PREFIX, + if (strncmp(names[i], SAMBA_XATTR_DOSSTREAM_PREFIX, prefix_len) != 0) { continue; } diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c index 896d2de..b5b3ea7 100644 --- a/source/smbd/trans2.c +++ b/source/smbd/trans2.c @@ -105,9 +105,13 @@ static bool samba_private_attr_name(const char *unix_ea_name) for (i = 0; prohibited_ea_names[i]; i++) { if (strequal( prohibited_ea_names[i], unix_ea_name)) - return True; + return true; } - return False; + if (StrnCaseCmp(unix_ea_name, SAMBA_XATTR_DOSSTREAM_PREFIX, + strlen(SAMBA_XATTR_DOSSTREAM_PREFIX)) == 0) { + return true; + } + return false; } /**************************************************************************** -- Samba Shared Repository