Don't fault on NULL pointers in Is*Ptr functions
Mike Hearn
mike at navi.cx
Fri Mar 25 10:26:19 CST 2005
Don't fault on NULL pointers in Is*Ptr functions
Index: dlls/kernel/virtual.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/virtual.c,v
retrieving revision 1.5
diff -u -p -d -r1.5 virtual.c
--- dlls/kernel/virtual.c 22 Mar 2005 21:16:39 -0000 1.5
+++ dlls/kernel/virtual.c 25 Mar 2005 16:16:48 -0000
@@ -526,6 +526,8 @@ BOOL WINAPI IsBadReadPtr(
UINT size ) /* [in] Size of block */
{
if (!size) return FALSE; /* handle 0 size case w/o reference */
+ if (!ptr) return TRUE;
+
if (!page_size) page_size = getpagesize();
__TRY
{
@@ -564,6 +566,8 @@ BOOL WINAPI IsBadWritePtr(
UINT size ) /* [in] Size of block in bytes */
{
if (!size) return FALSE; /* handle 0 size case w/o reference */
+ if (!ptr) return TRUE;
+
if (!page_size) page_size = getpagesize();
__TRY
{
@@ -641,6 +645,8 @@ BOOL WINAPI IsBadStringPtrA(
LPCSTR str, /* [in] Address of string */
UINT max ) /* [in] Maximum size of string */
{
+ if (!str) return TRUE;
+
__TRY
{
volatile const char *p = str;
@@ -662,6 +668,8 @@ BOOL WINAPI IsBadStringPtrA(
*/
BOOL WINAPI IsBadStringPtrW( LPCWSTR str, UINT max )
{
+ if (!str) return TRUE;
+
__TRY
{
volatile const WCHAR *p = str;
More information about the wine-patches
mailing list