]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Simplify rmdir_internals()
authorVolker Lendecke <vl@samba.org>
Fri, 3 Jan 2025 09:47:13 +0000 (10:47 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 23 Jan 2025 23:08:38 +0000 (23:08 +0000)
recursive_rmdir_fsp() works fine on the original fsp passed in, we
don't need to fetch the dirfsp from the dir_hnd we created to call
can_delete_directory_hnd()

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/close.c

index 271c02289f56d0dee1cf17040c57ea3f03831a9b..c33bcb117fd1b01fcc93b1dab82914525f6920cc 100644 (file)
@@ -1099,7 +1099,6 @@ static NTSTATUS rmdir_internals(TALLOC_CTX *ctx, struct files_struct *fsp)
        struct smb_filename *parent_fname = NULL;
        struct smb_filename *at_fname = NULL;
        struct smb_Dir *dir_hnd = NULL;
-       struct files_struct *dirfsp = NULL;
        int unlink_flags = 0;
        NTSTATUS status;
        int ret;
@@ -1186,15 +1185,15 @@ static NTSTATUS rmdir_internals(TALLOC_CTX *ctx, struct files_struct *fsp)
                goto err;
        }
 
-       dirfsp = dir_hnd_fetch_fsp(dir_hnd);
-
        status = can_delete_directory_hnd(dir_hnd);
+       TALLOC_FREE(dir_hnd);
+
        if (!NT_STATUS_IS_OK(status)) {
                status = NT_STATUS_DIRECTORY_NOT_EMPTY;
                goto err;
        }
 
-       status = recursive_rmdir_fsp(dirfsp);
+       status = recursive_rmdir_fsp(fsp);
        if (!NT_STATUS_IS_OK(status)) {
                status = NT_STATUS_DIRECTORY_NOT_EMPTY;
                goto err;
@@ -1210,8 +1209,6 @@ static NTSTATUS rmdir_internals(TALLOC_CTX *ctx, struct files_struct *fsp)
        }
 
   err:
-
-       TALLOC_FREE(dir_hnd);
        TALLOC_FREE(parent_fname);
 
        if (!NT_STATUS_IS_OK(status)) {