summaryrefslogtreecommitdiff
path: root/source3/modules/vfs_xattr_tdb.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-08-15 22:21:48 +1000
committerAndrew Bartlett <abartlet@samba.org>2012-08-15 16:28:03 +0200
commitcc3bdaaf0a5586e0f840466719f9f8387c5cddd0 (patch)
tree8400385a881a801f96e4e0cda4adc1966e83eb88 /source3/modules/vfs_xattr_tdb.c
parent898c5e140ddca47eac9e2150fb571d6eac3ed7d2 (diff)
downloadsamba-cc3bdaaf0a5586e0f840466719f9f8387c5cddd0.tar.gz
samba-cc3bdaaf0a5586e0f840466719f9f8387c5cddd0.tar.bz2
samba-cc3bdaaf0a5586e0f840466719f9f8387c5cddd0.zip
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
Diffstat (limited to 'source3/modules/vfs_xattr_tdb.c')
-rw-r--r--source3/modules/vfs_xattr_tdb.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/source3/modules/vfs_xattr_tdb.c b/source3/modules/vfs_xattr_tdb.c
index f09eec2cd8..80db90441d 100644
--- a/source3/modules/vfs_xattr_tdb.c
+++ b/source3/modules/vfs_xattr_tdb.c
@@ -76,7 +76,7 @@ static ssize_t xattr_tdb_fgetxattr(struct vfs_handle_struct *handle,
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;
}
@@ -128,7 +128,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 +165,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 +201,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 +272,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;