[ros-dev] [ros-diffs] [jimtabor] 37436: - Fixes bug 3864. While I was at it I fixed most of the gdi max bit max info sizes too. - Added notes for the SEH abuse in win32k dibobj.c. - Tested WinMerge 2.10.2, AbiWord 2.4.1, Firefox 1.5.0.3 and wine
James Tabor
jimtabor.rosdev at gmail.com
Wed Nov 19 17:35:12 CET 2008
Hi,
Well the code subroutines have safeguards placed in them. We know this
due to research and trial studies. These safeguards are located in
target and most called functions.
A good example of an emulation hack that I have seen is this:
if(!bmi){
if(bits) *bits = NULL;
return NULL;
}
Taken from wine (Do I need to post copyright notice for this too Mr.
Edwards?), function CreateDIBSection.
This is a behavioral hack to emulate the correct test case results for
this function.
UINT
FASTCALL
DIB_BitmapMaxBitsSize( PBITMAPINFO Info, UINT ScanLines )
{
UINT MaxBits = 0;
if (!Info) return 0;
UINT
FASTCALL
DIB_BitmapBitsSize( PBITMAPINFO Info )
{
UINT Ret;
if (!Info) return 0;
These are magnificently correct and create an one byte allocated space
with RtlAllocateHeap as it should and pass the one byte pointer to
kernel space since this is also correct behavior for most these
related kernel space functions. Zero bytes are copied and the kernel
functions with defaults settings and it passes or fails in kernel
space. Which is why we are correcting kernel space function behavior.
I am very surprised you did not know this,,,, read the code train,,,
James
puzzled, B^/
More information about the Ros-dev
mailing list