diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2015-04-23 15:02:32 +0200 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2015-04-23 22:04:59 +0200 |
commit | 5abb0ed13c09a1ce68d3134c7a9369ccbb1a739b (patch) | |
tree | d755097720682e0bd9592456d5e5b8d912b86e9c /winsup/cygwin/path.cc | |
parent | 4e99630cfdfa582feb6deeb12f6fbee92d15d44e (diff) | |
download | cygnal-5abb0ed13c09a1ce68d3134c7a9369ccbb1a739b.tar.gz cygnal-5abb0ed13c09a1ce68d3134c7a9369ccbb1a739b.tar.bz2 cygnal-5abb0ed13c09a1ce68d3134c7a9369ccbb1a739b.zip |
Handle unlinking in-use files on virtual drives
* path.cc (path_conv::set_nt_native_path): New function.
* path.h (path_conv::set_nt_native_path): Add prototype.
* syscall.cc (try_to_bin): Handle moving files to the recycler
accessed via a local virtual drive (subst). Fix a problem renaming
the file to the unique replacement name on Samba. Align comment.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 1dd96cf10..446d746cc 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -486,6 +486,18 @@ get_nt_native_path (const char *path, UNICODE_STRING& upath, bool dos) return &upath; } +/* Handle with extrem care! Only used in a certain instance in try_to_bin. + Every other usage needs a careful check. */ +void +path_conv::set_nt_native_path (PUNICODE_STRING new_path) +{ + wide_path = (PWCHAR) crealloc_abort (wide_path, new_path->MaximumLength); + memcpy (wide_path, new_path->Buffer, new_path->Length); + uni_path.Length = new_path->Length; + uni_path.MaximumLength = new_path->MaximumLength; + uni_path.Buffer = wide_path; +} + PUNICODE_STRING path_conv::get_nt_native_path () { |