mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 23:07:47 +00:00
ntoskrnl: Use SIZE_T to store 64-bit offset to USER_SHARED_DATA page.
This commit is contained in:
parent
ed06707bac
commit
3d203b1ecb
|
@ -684,7 +684,7 @@ static DWORD emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
|
||||||
BYTE *data = INSTR_GetOperandAddr( context, instr + 2, long_addr,
|
BYTE *data = INSTR_GetOperandAddr( context, instr + 2, long_addr,
|
||||||
rex, segprefix, &len );
|
rex, segprefix, &len );
|
||||||
unsigned int data_size = (instr[1] == 0xb7) ? 2 : 1;
|
unsigned int data_size = (instr[1] == 0xb7) ? 2 : 1;
|
||||||
unsigned int offset = data - user_shared_data;
|
SIZE_T offset = data - user_shared_data;
|
||||||
|
|
||||||
if (offset <= sizeof(KSHARED_USER_DATA) - data_size)
|
if (offset <= sizeof(KSHARED_USER_DATA) - data_size)
|
||||||
{
|
{
|
||||||
|
@ -705,7 +705,7 @@ static DWORD emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
|
||||||
BYTE *data = INSTR_GetOperandAddr( context, instr + 1, long_addr,
|
BYTE *data = INSTR_GetOperandAddr( context, instr + 1, long_addr,
|
||||||
rex, segprefix, &len );
|
rex, segprefix, &len );
|
||||||
unsigned int data_size = (*instr == 0x8b) ? get_op_size( long_op, rex ) : 1;
|
unsigned int data_size = (*instr == 0x8b) ? get_op_size( long_op, rex ) : 1;
|
||||||
unsigned int offset = data - user_shared_data;
|
SIZE_T offset = data - user_shared_data;
|
||||||
|
|
||||||
if (offset <= sizeof(KSHARED_USER_DATA) - data_size)
|
if (offset <= sizeof(KSHARED_USER_DATA) - data_size)
|
||||||
{
|
{
|
||||||
|
@ -725,7 +725,7 @@ static DWORD emulate_instruction( EXCEPTION_RECORD *rec, CONTEXT *context )
|
||||||
{
|
{
|
||||||
BYTE *data = (BYTE *)(long_addr ? *(DWORD64 *)(instr + 1) : *(DWORD *)(instr + 1));
|
BYTE *data = (BYTE *)(long_addr ? *(DWORD64 *)(instr + 1) : *(DWORD *)(instr + 1));
|
||||||
unsigned int data_size = (*instr == 0xa1) ? get_op_size( long_op, rex ) : 1;
|
unsigned int data_size = (*instr == 0xa1) ? get_op_size( long_op, rex ) : 1;
|
||||||
unsigned int offset = data - user_shared_data;
|
SIZE_T offset = data - user_shared_data;
|
||||||
len = long_addr ? sizeof(DWORD64) : sizeof(DWORD);
|
len = long_addr ? sizeof(DWORD64) : sizeof(DWORD);
|
||||||
|
|
||||||
if (offset <= sizeof(KSHARED_USER_DATA) - data_size)
|
if (offset <= sizeof(KSHARED_USER_DATA) - data_size)
|
||||||
|
|
Loading…
Reference in a new issue