BUG: IsBadStringPtr() Reports Bad String as ValidLast reviewed: January 5, 1995Article ID: Q111591 |
The information in this article applies to:
SYMPTOMSUnder a particular condition, IsBadStringPtr() will report that a bad string is valid. If the pointer passed to IsBadStringPtr() refers to a block of memory of size 0xFFFF and is filled with all nonzero data, IsBadStringPtr() returns 0.
STATUSMicrosoft has confirmed this to be a bug in Windows version 3.1. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
MORE INFORMATIONFor IsBadStringPtr() to validate a string, it must be passed a pointer to valid memory and the string must contain a NULL character that terminates the string. The following code illustrates the error:
#include <windows.h> #include <windowsx.h> #include <memory.h>LPSTR lpPtr; BOOL fRet;
// GlobalAllocPtr is a macro in WINDOWSX.HlpPtr = GlobalAllocPtr(GMEM_MOVEABLE, 0XFFFF); _fmemset(lpPtr, 'Q', 0xFFFF); Ret = IsBadStringPtr(lpPtr, 0xFFFF); if (fRet) // ... etcetera, fRet incorrectly contains zero.
|
Additional reference words: buglist3.10 3.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |