win32: raise EXE stack reserve to 8MB to match Linux main-thread stacks

The color_ops justify functions (co_center/co_ljust/co_rjust) allocate
fill_char_t fchars[LBUF_SIZE] (~1.25MB) on the stack, and co_reverse
keeps a 512KB elems[] array.  Linux main threads get 8MB of stack so
this is fine upstream, but Windows EXEs default to a 1MB reserve, so
any call to center()/ljust()/rjust() crashed netmux with a stack
overflow (0xc00000fd) in libmux.dll.

Set StackReserveSize to 8388608 on netmux.exe and muxscript.exe (which
also links libmux).  Threads created with a default stack size inherit
the EXE reserve, so this covers worker threads too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Stephen Dennis 2026-06-12 18:11:35 -06:00
parent c9881077e9
commit 27cc17c392
2 changed files with 4 additions and 0 deletions

View file

@ -70,6 +70,7 @@
<AdditionalDependencies>ganl.lib;wsock32.lib;ws2_32.lib;secur32.lib;crypt32.lib;ncrypt.lib;pcre2-8d.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>.\bin_debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SubSystem>Console</SubSystem>
<StackReserveSize>8388608</StackReserveSize>
<DataExecutionPrevention />
<TargetMachine>MachineX64</TargetMachine>
</Link>
@ -102,6 +103,7 @@
<AdditionalLibraryDirectories>.\bin_release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<Version>2.14</Version>
<SubSystem>Console</SubSystem>
<StackReserveSize>8388608</StackReserveSize>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention />
<TargetMachine>MachineX64</TargetMachine>

View file

@ -59,6 +59,7 @@
<AdditionalDependencies>libmux.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\bin_debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<SubSystem>Console</SubSystem>
<StackReserveSize>8388608</StackReserveSize>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
@ -81,6 +82,7 @@
<AdditionalLibraryDirectories>..\bin_release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<Version>2.14</Version>
<SubSystem>Console</SubSystem>
<StackReserveSize>8388608</StackReserveSize>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<TargetMachine>MachineX64</TargetMachine>
</Link>