From: André Hentschel Subject: [3/3] ntdll: Use the same buffer size for every platform and complain if it's too small Message-Id: <52CA080D.5000409@dawncrow.de> Date: Mon, 06 Jan 2014 02:34:05 +0100 --- dlls/ntdll/directory.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c index 78b3ea7..5e17391 100644 --- a/dlls/ntdll/directory.c +++ b/dlls/ntdll/directory.c @@ -3205,19 +3205,22 @@ static void WINAPI read_changes_user_apc( void *arg, IO_STATUS_BLOCK *io, ULONG static NTSTATUS read_changes_apc( void *user, PIO_STATUS_BLOCK iosb, NTSTATUS status, void **apc ) { struct read_changes_info *info = user; - char data[PATH_MAX]; + char data[4096]; NTSTATUS ret; int size; SERVER_START_REQ( read_change ) { req->handle = wine_server_obj_handle( info->FileHandle ); - wine_server_set_reply( req, data, PATH_MAX ); + wine_server_set_reply( req, data, sizeof(data) ); ret = wine_server_call( req ); size = wine_server_reply_size( reply ); } SERVER_END_REQ; + if (ret == STATUS_BUFFER_TOO_SMALL) + ERR("Buffer too small\n"); + if (ret == STATUS_SUCCESS && info->Buffer) { PFILE_NOTIFY_INFORMATION pfni = info->Buffer; @@ -3302,6 +3305,9 @@ NtNotifyChangeDirectoryFile( HANDLE FileHandle, HANDLE Event, FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, Buffer, BufferSize, CompletionFilter, WatchTree ); + if (BufferSize > 4096) + FIXME("Application provided a Buffer larger than 4096 Bytes\n"); + if (!IoStatusBlock) return STATUS_ACCESS_VIOLATION; -- 1.8.1.2