Fix a bunch of Windows bugs reported on Discord

This change addresses everything from stack smashing to %SYSTEMROOT%
breaking socket(). Issues relating to compile.com not reporting text
printed to stderr has been resolved for Windows builds.
This commit is contained in:
Justine Tunney 2023-07-28 06:17:34 -07:00
parent b0e3258709
commit 5018171fa5
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
10 changed files with 104 additions and 46 deletions

View file

@ -18,16 +18,24 @@
*/
#include "libc/intrin/describeflags.internal.h"
#include "libc/macros.internal.h"
#include "libc/nt/enum/accessmask.h"
#include "libc/nt/enum/fileflagandattributes.h"
#include "libc/nt/enum/filemapflags.h"
#include "libc/nt/ipc.h"
static const struct DescribeFlags kPipeOpenFlags[] = {
{kNtPipeAccessDuplex, "Duplex"}, // 0x00000003
{kNtPipeAccessOutbound, "Outbound"}, // 0x00000002
{kNtPipeAccessInbound, "Inbound"}, // 0x00000001
{kNtPipeAccessDuplex, "kNtPipeAccessDuplex"},
{kNtPipeAccessOutbound, "kNtPipeAccessOutbound"},
{kNtPipeAccessInbound, "kNtPipeAccessInbound"},
{kNtFileFlagOverlapped, "kNtFileFlagOverlapped"},
{kNtFileFlagFirstPipeInstance, "kNtFileFlagFirstPipeInstance"},
{kNtFileFlagWriteThrough, "kNtFileFlagWriteThrough"},
{kNtWriteDac, "kNtWriteDac"},
{kNtWriteOwner, "kNtWriteOwner"},
{kNtAccessSystemSecurity, "kNtAccessSystemSecurity"},
};
const char *(DescribeNtPipeOpenFlags)(char buf[64], uint32_t x) {
return DescribeFlags(buf, 64, kPipeOpenFlags, ARRAYLEN(kPipeOpenFlags),
"kNtPipeAccess", x);
return DescribeFlags(buf, 64, kPipeOpenFlags, ARRAYLEN(kPipeOpenFlags), "",
x);
}