From: Ralf Habacker ralf.habacker@freenet.de
--- dlls/ntdll/unix/file.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 5cabb6c37ff..ac11b85e886 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -3580,8 +3580,11 @@ static NTSTATUS lookup_unix_name( int root_fd, OBJECT_ATTRIBUTES *attr, UNICODE_ { int reparse_fd;
- memcpy( reparse_name, name, (end - name) * sizeof(WCHAR) ); - reparse_name[end - name] = '?'; + size_t nlen = end - name; + WCHAR* reparse_name = malloc((nlen + 2) * sizeof(WCHAR)); // +1 for '?' +1 for '\0' + memcpy(reparse_name, name, nlen * sizeof(WCHAR)); + reparse_name[nlen] = '?'; + reparse_name[nlen + 1] = 0; // terminate
if (!name_len && open_reparse) {