[ros-dev] [ros-diffs] [rharabien] 51126: [NTOSKRNL] Revert r51108. ProbeForRead doesn't check if memory is readable. Improve comments and replace trick raising exception with call to ExRaiseAccessViolation. [WIN32K] Rem...
Timo Kreuzer
timo.kreuzer at web.de
Thu Mar 24 00:34:03 UTC 2011
Hi,
Please also revert the call to ExRaiseAccessViolation. The behaviour is
semi-documented here: http://www.uninformed.org/?v=10&a=2
There's a small but potentially important difference, which is the value
of the faulting address.
Thanks,
Timo
Am 23.03.2011 16:49, schrieb rharabien at svn.reactos.org:
> Author: rharabien
> Date: Wed Mar 23 15:49:44 2011
> New Revision: 51126
>
> URL: http://svn.reactos.org/svn/reactos?rev=51126&view=rev
> Log:
> [NTOSKRNL]
> Revert r51108. ProbeForRead doesn't check if memory is readable.
> Improve comments and replace trick raising exception with call to ExRaiseAccessViolation.
>
> [WIN32K]
> Remove ASSERTs in IntSetSysColors: this function is only called in NtUserSetSysColors in SEH block. It shouldn't crash for NULL pointers.
>
> Modified:
> trunk/reactos/ntoskrnl/ex/exintrin.c
> trunk/reactos/subsystems/win32/win32k/objects/stockobj.c
>
> Modified: trunk/reactos/ntoskrnl/ex/exintrin.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/exintrin.c?rev=51126&r1=51125&r2=51126&view=diff
> ==============================================================================
> --- trunk/reactos/ntoskrnl/ex/exintrin.c [iso-8859-1] (original)
> +++ trunk/reactos/ntoskrnl/ex/exintrin.c [iso-8859-1] Wed Mar 23 15:49:44 2011
> @@ -104,7 +104,6 @@
> IN ULONG Alignment)
> {
> ULONG_PTR Last, Current = (ULONG_PTR)Address;
> - CHAR Temp;
> PAGED_CODE();
>
> /* Only probe if we have a valid length */
> @@ -132,16 +131,7 @@
> ExRaiseAccessViolation();
> }
>
> - /* Round down to the last page */
> - Last = PAGE_ROUND_DOWN(Last) + PAGE_SIZE;
> - do
> - {
> - /* Attempt a read */
> - Temp = *(volatile CHAR*)Current;
> -
> - /* Go to the next address */
> - Current = PAGE_ROUND_DOWN(Current) + PAGE_SIZE;
> - } while (Current != Last);
> + /* ProbeForRead doesn't check if memory pages are readable! */
> }
> }
>
>
> Modified: trunk/reactos/subsystems/win32/win32k/objects/stockobj.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/stockobj.c?rev=51126&r1=51125&r2=51126&view=diff
> ==============================================================================
> --- trunk/reactos/subsystems/win32/win32k/objects/stockobj.c [iso-8859-1] (original)
> +++ trunk/reactos/subsystems/win32/win32k/objects/stockobj.c [iso-8859-1] Wed Mar 23 15:49:44 2011
> @@ -221,9 +221,6 @@
> {
> UINT i;
>
> - ASSERT(Elements);
> - ASSERT(Colors);
> -
> for (i = 0; i< nColors; i++)
> {
> if ((UINT)(*Elements)< NUM_SYSCOLORS)
>
>
>
More information about the Ros-dev
mailing list