PC WSPlus: Schedule Access Library GP Faults (125577)
The information in this article applies to:
- Microsoft Schedule+ for Windows 1.0a
This article was previously published under Q125577 SYMPTOMS
The Schedule+ Access Libraries include sample Microsoft C and Microsoft
Visual Basic applications. While running the C sample application,
SALAPP.EXE, the following error can occur:
SALAPP caused a General Protection Fault in module SALAPP.EXE
at 0001:58AF
This error is most likely to occur while reading a meeting request sent to
the user.
NOTE: The Schedule+ Access Libraries are included in the Microsoft Mail for
PC Networks Software Development Kit version 3.2.
CAUSE
This error message can be caused by coding errors in the STRUCTS.C file
included with the sample. Any applications written using functions included
in this file could also produce the same error.
RESOLUTION
There are several instances of the same error in the STRUCTS.C file. The
error involves the use of the GlobalAlloc() function and subsequent usage
of the _fstrcpy() function.
The problem occurs because the lstrlen() function counts the characters in
the string parameter but does not count the zero character that terminates
the string. The _fstrcpy() will copy the string and the trailing null
character that can be one more character than the GlobalAlloc() function
allowed.
To correct the code, update the STRUCTS.C file by adding one additional
byte to the count returned by the lstrlen() function. The following is an
example:
(originally)
GlobalAlloc(GMEM_MOVEABLE,lstrlen(lpApptIn->lpszItemType));
(change to)
GlobalAlloc(GMEM_MOVEABLE,lstrlen(lpApptIn->lpszItemType)+1);
These changes need to be made in 14 places in the STRUCTS.C file; one for
each occurrence of the lstrlen function. Search the file for lstrlen and
correct the GlobalAlloc() function that contains each instance.
MORE INFORMATION
The occurrence of a general protection fault (GP fault) is intermittent.
This is because the GlobalAlloc function may allocate more memory than is
requested in the call. The amount specified is the minimum amount that the
function will allocate. The problem occurs frequently when the subject line
of the meeting request is exactly 32 characters.
Modification Type: | Major | Last Reviewed: | 12/17/1999 |
---|
Keywords: | KB125577 |
---|
|