[NTOSKRNL]
authorRafal Harabien <rafalh@reactos.org>
Wed, 23 Mar 2011 15:49:44 +0000 (15:49 +0000)
committerRafal Harabien <rafalh@reactos.org>
Wed, 23 Mar 2011 15:49:44 +0000 (15:49 +0000)
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.

svn path=/trunk/; revision=51126

reactos/ntoskrnl/ex/exintrin.c
reactos/subsystems/win32/win32k/objects/stockobj.c

index 3e9d5c3..df80cae 100644 (file)
@@ -104,7 +104,6 @@ ProbeForRead(IN CONST VOID *Address,
              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 @@ ProbeForRead(IN CONST VOID *Address,
             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! */
     }
 }
 
index ca8a5e7..1a4a65e 100644 (file)
@@ -221,9 +221,6 @@ IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors)
 {
     UINT i;
 
-    ASSERT(Elements);
-    ASSERT(Colors);
-
     for (i = 0; i < nColors; i++)
     {
         if ((UINT)(*Elements) < NUM_SYSCOLORS)