This looks like you're creating a mem leak.
Author: jimtabor Date: Sun Nov 30 17:39:20 2008 New Revision: 37783
URL: http://svn.reactos.org/svn/reactos?rev=37783&view=rev http://svn.reactos.org/svn/reactos?rev=37783&view=rev Log:
- Fixed hooking bug for Firefox, a plus, new SEH found a bug!
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/callback.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/callback.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/callback.c?rev=37783&r1=37782&r2=37783&view=diff ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/callback.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/callback.c [iso-8859-1] Sun Nov 30 17:39:20 2008 @@ -507,12 +507,12 @@ } _SEH2_END;
- IntCbFreeMemory(Argument);
- if (!NT_SUCCESS(Status)) { return 0; }
if (Argument) IntCbFreeMemory(Argument);
return Result;
}
Hi, It looks like Firefox and friends return back from user callback more than once. This safeguards the return so it does not crash. My guess we are doing something wrong again. It reminds me of the AbiWord GdiFlush abuse, maybe this is the same where their developers assume something and it was backed up by someone from M$ as a joke. It's all about performance, the GdiFlush calls slow down AbiWord maybe this is the same with the erroneous callbacks for hooks. Technically it is a call from user space to kernel space. I need more time later to research this. Thanks, James
On Thu, Dec 4, 2008 at 6:00 AM, Timo Kreuzer timo.kreuzer@web.de wrote:
This looks like you're creating a mem leak.