Using Classic Outlook on Windows for personal email, calendar, and contact management
Hi @Dave D
The information shown is not sufficient to establish either buffer’s actual capacity.
[EBP-0xD8] and [EBP-0x118] identify positions within the stack frame, but they do not prove the size or lifetime of the objects placed there. Likewise, the earlier value 0x3F may be a field limit, copy limit, or unrelated argument. It cannot safely be reused as the SCASB bound without tracing that value through the complete caller and callee.
To determine the valid bound, you would need a reproducible crash dump and complete disassembly showing:
- the function prologue and full stack-frame layout;
- every write into both local regions;
- how
[EBP-0x34]is derived and whether the pointer can escape its original object; - register values and accessible memory regions at the crash;
- the helper’s return-value and flags contract at every call site.
REPNE SCASB is unbounded here because ECX is set to FFFFFFFF. A conceptual replacement would initialize ECX with the verified remaining object capacity, scan for zero, then distinguish “terminator found” from “limit exhausted.” However, preserving semantics requires knowing whether the original helper returns a length, end pointer, Boolean result, or condition-code state.
An invalid pointer cannot be made safe merely by adding a count. It must be rejected before dereferencing, or the caller must be corrected so that it supplies a valid pointer and explicit length. Page-readability checks are not a substitute for object-bound validation, and wrapping the scan in exception handling can conceal corruption.
I would not recommend patching OUTLLIB.DLL. Outlook 2000 is far outside its supported lifecycle, and modifying the DLL can invalidate its integrity and introduce further instability. The practical resolution is to reproduce the issue in a controlled debugger or virtual machine for research, while moving production use to a supported Outlook version. Unsupported Office releases can develop reliability and security problems because fixes and security updates are no longer provided