[kernel32] IsBadStringPtrA/W:

- Remove overflow failure case, this isn't checked for string validation
- Adapt page check to let the full string be checked in case of overflow
See issue #4861 for more details.

svn path=/trunk/; revision=43487
This commit is contained in:
Gregor Schneider 2009-10-15 19:12:37 +00:00
parent 071a297838
commit b452b0b30a

View file

@ -171,9 +171,6 @@ IsBadStringPtrW(IN LPCWSTR lpsz,
/* Calculate the last page */
Last = (PWCHAR)((ULONG_PTR)lpsz + (ucchMax * 2) - 2);
/* Another quick failure case */
if ((ULONG_PTR)Last < (ULONG_PTR)lpsz) return TRUE;
/* Enter SEH */
_SEH2_TRY
{
@ -184,7 +181,7 @@ IsBadStringPtrW(IN LPCWSTR lpsz,
{
Char = *Current;
Current++;
} while (Char && (Current <= Last));
} while (Char && (Current != Last));
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{
@ -217,9 +214,6 @@ IsBadStringPtrA(IN LPCSTR lpsz,
/* Calculate the last page */
Last = (PCHAR)((ULONG_PTR)lpsz + ucchMax - 1);
/* Another quick failure case */
if ((ULONG_PTR)Last < (ULONG_PTR)lpsz) return TRUE;
/* Enter SEH */
_SEH2_TRY
{
@ -230,7 +224,7 @@ IsBadStringPtrA(IN LPCSTR lpsz,
{
Char = *Current;
Current++;
} while (Char && (Current <= Last));
} while (Char && (Current != Last));
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
{