Alexandre Julliard : kernelbase: Add IsBadStringPtr() replacement functions.
Alexandre Julliard
julliard at winehq.org
Tue Dec 10 15:58:49 CST 2019
Module: wine
Branch: master
Commit: 0235e5146529d3d7eb257b2b3e5cc36bc2c77dbd
URL: https://source.winehq.org/git/wine.git/?a=commit;h=0235e5146529d3d7eb257b2b3e5cc36bc2c77dbd
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Dec 10 11:12:20 2019 +0100
kernelbase: Add IsBadStringPtr() replacement functions.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernelbase/memory.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c
index 465a57209b..83805ece45 100644
--- a/dlls/kernelbase/memory.c
+++ b/dlls/kernelbase/memory.c
@@ -390,6 +390,42 @@ BOOL WINAPI DECLSPEC_HOTPATCH WriteProcessMemory( HANDLE process, void *addr, co
}
+/* IsBadStringPtrA replacement for kernelbase, to catch exception in debug traces. */
+BOOL WINAPI IsBadStringPtrA( LPCSTR str, UINT_PTR max )
+{
+ if (!str) return TRUE;
+ __TRY
+ {
+ volatile const char *p = str;
+ while (p != str + max) if (!*p++) break;
+ }
+ __EXCEPT_PAGE_FAULT
+ {
+ return TRUE;
+ }
+ __ENDTRY
+ return FALSE;
+}
+
+
+/* IsBadStringPtrW replacement for kernelbase, to catch exception in debug traces. */
+BOOL WINAPI IsBadStringPtrW( LPCWSTR str, UINT_PTR max )
+{
+ if (!str) return TRUE;
+ __TRY
+ {
+ volatile const WCHAR *p = str;
+ while (p != str + max) if (!*p++) break;
+ }
+ __EXCEPT_PAGE_FAULT
+ {
+ return TRUE;
+ }
+ __ENDTRY
+ return FALSE;
+}
+
+
/***********************************************************************
* Heap functions
***********************************************************************/
More information about the wine-cvs
mailing list