diff options
-rw-r--r-- | source3/libsmb/cli_smb2_fnum.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/libsmb/cli_smb2_fnum.c b/source3/libsmb/cli_smb2_fnum.c index 462fa8e8599..26079a02eca 100644 --- a/source3/libsmb/cli_smb2_fnum.c +++ b/source3/libsmb/cli_smb2_fnum.c @@ -683,7 +683,7 @@ NTSTATUS cli_smb2_rmdir(struct cli_state *cli, const char *dname) FILE_ATTRIBUTE_DIRECTORY, /* file attributes */ FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, /* share_access */ FILE_OPEN, /* create_disposition */ - FILE_DIRECTORY_FILE|FILE_DELETE_ON_CLOSE, /* create_options */ + FILE_DIRECTORY_FILE, /* create_options */ &fnum, NULL); @@ -711,6 +711,13 @@ NTSTATUS cli_smb2_rmdir(struct cli_state *cli, const char *dname) if (!NT_STATUS_IS_OK(status)) { return status; } + + status = cli_smb2_delete_on_close(cli, fnum, true); + if (!NT_STATUS_IS_OK(status)) { + cli_smb2_close_fnum(cli, fnum); + return status; + } + return cli_smb2_close_fnum(cli, fnum); } |