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