Cygwin: try_to_bin: fix rootdir handle after reopening

If the first rename fails, we reopen the rootdir for creating a subdir.
The rootdir handle can change its value at this point, but the code
doesn't take this into account.  The subsequent rename then fails with
STATUS_INVALID_HANDLE.  Fix this by copying the new rootdir value to
pfri->RootDirectory.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2019-01-09 21:41:48 +01:00
parent ec457e0351
commit b7a6d357ee

View File

@ -389,6 +389,8 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access, ULONG flags)
&recycler, status);
goto out;
}
/* Correct the rootdir HANDLE in pfri after reopening the dir. */
pfri->RootDirectory = rootdir;
/* Then check if recycler exists by opening and potentially creating it.
Yes, we can really do that. Typically the recycle bin is created
by the first user actually using the bin. */