diff --git a/src/fs/ntapi_tt_istat.c b/src/fs/ntapi_tt_istat.c index 00766ed..77eafb2 100644 --- a/src/fs/ntapi_tt_istat.c +++ b/src/fs/ntapi_tt_istat.c @@ -130,6 +130,20 @@ int32_t __stdcall __ntapi_tt_istat( wch_mark, (uintptr_t)wch - (uintptr_t)wch_mark); + if (!(flags & NT_ISTAT_DEV_NAME_COPY)) { + istat->dev_name[0] = 0; + return NT_STATUS_SUCCESS; + } else if (istat->dev_name_maxlen < sdev->strlen) { + istat->dev_name[0] = 0; + return NT_STATUS_BUFFER_TOO_SMALL; + } + + __ntapi->tt_memcpy_utf16( + istat->dev_name, + sdev->buffer, + istat->dev_name_strlen); + + return status; }