mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
Hide streams from the EA API
This commit is contained in:
parent
2f46091511
commit
e9bb3d5067
@ -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
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user