summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-02-04 16:23:32 -0800
committerJeremy Allison <jra@samba.org>2010-02-04 16:23:32 -0800
commitd8990326361c215e9da90fd587b3cd51c113376f (patch)
treea94f048d55e8a07a1a00317add0faa2cd5cb0370
parent0c93aa3cd5dde4697cd8d2dd59229e5a77fe688b (diff)
downloadsamba-d8990326361c215e9da90fd587b3cd51c113376f.tar.gz
samba-d8990326361c215e9da90fd587b3cd51c113376f.tar.bz2
samba-d8990326361c215e9da90fd587b3cd51c113376f.zip
Fix bug 7075 - bug in vfs_scannedonly rmdir implementation.
Check for NULL on opendir, correctly call next rmdir. Jeremy.
-rw-r--r--source3/modules/vfs_scannedonly.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/source3/modules/vfs_scannedonly.c b/source3/modules/vfs_scannedonly.c
index 42e9aeccda..12077f374d 100644
--- a/source3/modules/vfs_scannedonly.c
+++ b/source3/modules/vfs_scannedonly.c
@@ -828,6 +828,9 @@ static int scannedonly_rmdir(vfs_handle_struct * handle, const char *path)
path_w_slash = name_w_ending_slash(ctx,path);
dirp = SMB_VFS_NEXT_OPENDIR(handle, path, NULL, 0);
+ if (!dirp) {
+ return -1;
+ }
while ((dire = SMB_VFS_NEXT_READDIR(handle, dirp, NULL)) != NULL) {
if (ISDOT(dire->d_name) || ISDOTDOT(dire->d_name)) {
continue;
@@ -884,7 +887,8 @@ static int scannedonly_rmdir(vfs_handle_struct * handle, const char *path)
TALLOC_FREE(smb_fname);
}
}
- return SMB_VFS_NEXT_CLOSEDIR(handle, dirp);
+ SMB_VFS_NEXT_CLOSEDIR(handle, dirp);
+ return SMB_VFS_NEXT_RMDIR(handle, path);
}
static void free_scannedonly_data(void **data)