KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q40224: Rare Problem with /Exepack Linker Option Can Hang QuickC

Article: Q40224
Product(s): See article
Version(s): 2.00
Operating System(s): MS-DOS
Keyword(s): enduser | s_link buglist2.00 | mspl13_c
Last Modified: 3-MAR-1989

There is a problem in the /EXEPACK option of the linker that can hang
programs within QuickC. This problem affects the small- and medium-memory
models only.

If the program's initial SS:SP is within one of two very small ranges
of the first 312 bytes of the minalloc region, and if an interrupt
occurs immediately before the instruction in the unpacking module that
jumps to the original CS:IP, then the program hangs.

The minalloc region is the start of uninitialized data at the end of a
program, i.e., bss + stack in a non-far-data program.

As a result, the stack must be 312 bytes or less (the size of the
unpacking module) for the problem to occur. Even then, there is only
an 18/312 (6 percent) chance, depending on the initial SS:SP. (18 is the
total size of the two unsafe regions.)  Also, there must be less than
312 bytes of near bss for this problem to occur.

Microsoft has confirmed this to be a problem in Version 2.00. We are
researching this problem and will post new information as it becomes
available.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.