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:
		| @@ -389,6 +389,8 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access, ULONG flags) | |||||||
| 	  		&recycler, status); | 	  		&recycler, status); | ||||||
| 	  goto out; | 	  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. |       /* Then check if recycler exists by opening and potentially creating it. | ||||||
| 	 Yes, we can really do that.  Typically the recycle bin is created | 	 Yes, we can really do that.  Typically the recycle bin is created | ||||||
| 	 by the first user actually using the bin. */ | 	 by the first user actually using the bin. */ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user