mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[channels,rdpdr] FILE_DIRECTORY_INFORMATION::FileName as WCHAR
This commit is contained in:
@@ -21,4 +21,5 @@ set(${MODULE_PREFIX}_SRCS rdpdr_main.c rdpdr_main.h)
|
||||
|
||||
set(${MODULE_PREFIX}_LIBS freerdp)
|
||||
|
||||
option(WITH_WCHAR_FILE_DIRECTORY_INFORMATION "Build with WCHAR FILE_DIRECTORY_INFORMATION::FileName" OFF)
|
||||
add_channel_server_library(${MODULE_PREFIX} ${MODULE_NAME} ${CHANNEL_NAME} FALSE "VirtualChannelEntry")
|
||||
|
||||
@@ -2344,7 +2344,7 @@ static UINT rdpdr_server_read_file_directory_information(wLog* log, wStream* s,
|
||||
if (fileNameLength / sizeof(WCHAR) > ARRAYSIZE(fdi->FileName))
|
||||
return ERROR_INVALID_DATA;
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
#if defined(__MINGW32__) || defined(WITH_WCHAR_FILE_DIRECTORY_INFORMATION)
|
||||
if (Stream_Read_UTF16_String(s, fdi->FileName, fileNameLength / sizeof(WCHAR)))
|
||||
return ERROR_INVALID_DATA;
|
||||
#else
|
||||
|
||||
@@ -239,4 +239,10 @@
|
||||
#cmakedefine WITHOUT_FREERDP_3x_DEPRECATED
|
||||
#endif
|
||||
|
||||
/** Build FILE_DIRECTORY_INFORMATION::FileName with type WCHAR instead of char
|
||||
*
|
||||
* @since version 3.20.0
|
||||
*/
|
||||
#cmakedefine WITH_WCHAR_FILE_DIRECTORY_INFORMATION
|
||||
|
||||
#endif /* FREERDP_CONFIG_H */
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#define FREERDP_CHANNEL_RDPDR_SERVER_RDPDR_H
|
||||
|
||||
#include <freerdp/api.h>
|
||||
#include <freerdp/config.h>
|
||||
#include <freerdp/types.h>
|
||||
#include <freerdp/channels/wtsvc.h>
|
||||
#include <freerdp/channels/rdpdr.h>
|
||||
@@ -59,7 +60,11 @@ typedef struct
|
||||
LARGE_INTEGER EndOfFile;
|
||||
LARGE_INTEGER AllocationSize;
|
||||
UINT32 FileAttributes;
|
||||
#if defined(WITH_WCHAR_FILE_DIRECTORY_INFORMATION)
|
||||
WCHAR FileName[512];
|
||||
#else
|
||||
char FileName[512];
|
||||
#endif
|
||||
} FILE_DIRECTORY_INFORMATION;
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user