REDIVIVUS

Proposals / #1004

Interpret the QSocket send size as an unsigned 16-bit count

applied · by Commit-Will · submitted 2026-11-02, applied 2026-11-02

Ghidra v1846 · 3cfe190

The target consumes only the low 16 bits of nSize and zero-extends them into the DWORD length forwarded to the actual Winsock send route. Current signed short gives the high-bit lengths a negative interpretation that the native MOVZX never uses. The sole caller constructs unsigned 16-bit packet-length words through both header paths and passes their total count. Retype nSize to existing ushort, retaining its two-byte slot, chosen name, both pointer inputs, signed int status return, __stdcall and RET12. No widening, naming, packet algorithm, runtime or buffer-safety change is claimed; arbitrary overflow/malformed sizes are not asserted safe.

Changes 1, applied together

  1. Retype variable win 0x006bc860 Stack[0xc]

    typeshort→ushort