From e7abe1a1d241eef2531e2cfc694500fb986b031f Mon Sep 17 00:00:00 2001 From: veclavtlica Date: Wed, 7 Oct 2026 12:05:28 +0300 Subject: [PATCH] fix auth read --- Common/buf.h | 4 ++-- Player/Display/x11.c | 8 ++++---- Player/Makefile | 14 +++++++++----- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/Common/buf.h b/Common/buf.h index 6f153ca..905cca0 100644 --- a/Common/buf.h +++ b/Common/buf.h @@ -39,8 +39,8 @@ typedef struct com_buf { p_v->flags = p_f | COM_BUF_STACK; \ p_v->typesz = sizeof(p_t); -#define com_buf_index(p_t, p_v, p_i) \ - (p_t *)(&(p_v)->data[(p_v)->typesz * (p_i)]) +#define com_buf_index_as(p_t, p_v, p_i) \ + (p_t *)(&(p_v)->data[sizeof(p_t) * (p_i)]) /* Dynamic allocation to persist no matter the function flow. */ struct com_buf *com_buf_make(uint32_t cap, uint32_t flags); diff --git a/Player/Display/x11.c b/Player/Display/x11.c index d06dd5a..95b1203 100644 --- a/Player/Display/x11.c +++ b/Player/Display/x11.c @@ -24,7 +24,7 @@ bool quited = false; bool fileread(void *ctx, char *into, uint32_t bytes) { - return com_std_syscall(0, (intptr_t)ctx, (intptr_t)into, bytes); + return com_std_syscall(0, (intptr_t)ctx, (intptr_t)into, bytes) == bytes; } bool fileskip(void *ctx, uint32_t bytes) { @@ -63,11 +63,11 @@ static struct plr_x11_auth_entry { if (!com_bin_read_u16(b, &data_len)) goto BREAK; uint32_t data_idx; - if (!com_bin_read_bufbi(b, buf, &data_idx, name_len)) + if (!com_bin_read_bufbi(b, buf, &data_idx, data_len)) goto BREAK; - result.auth_name = com_buf_index(struct com_buf, buf, name_idx); - result.auth_data = com_buf_index(struct com_buf, buf, data_idx); + result.auth_name = com_buf_index_as(struct com_buf, buf, name_idx); + result.auth_data = com_buf_index_as(struct com_buf, buf, data_idx); result.success = true; return result; BREAK: diff --git a/Player/Makefile b/Player/Makefile index d9ccf35..114304f 100644 --- a/Player/Makefile +++ b/Player/Makefile @@ -1,6 +1,7 @@ CC = clang -RELEASE ?= 0 -SQUEEZE ?= 0 +RELEASE ?= 0 # Optimize. +DEBUG ?= 1 # Emit debug info. +SQUEEZE ?= 0 # Nuclear option to save space. BITS ?= 64 CFLAGS = -Wall -std=gnu99 -flto=thin -ffast-math -fno-ident -fvisibility=hidden ifeq ($(MAKECMDGOALS),linux) @@ -23,10 +24,13 @@ ifeq ($(MAKECMDGOALS),wasm) CFLAGS += -Wl,--compress-relocations endif endif -ifeq ($(RELEASE), 0) - CFLAGS += -g3 -O1 +ifeq ($(DEBUG), 1) + CFLAGS += -g3 else - CFLAGS += -Wl,--strip-all -DNDEBUG -O3 -fuse-ld=lld -fmerge-all-constants -Wl,-O3 \ + CFLAGS += -DNDEBUG -Wl,--strip-all +endif +ifeq ($(RELEASE), 1) + CFLAGS += -O1 -fuse-ld=lld -fmerge-all-constants -Wl,-O3 \ -ffunction-sections -fdata-sections -Wl,--gc-sections \ -Wl,-mllvm,--vectorize-slp=true \ -Wl,-mllvm,--enable-gvn-hoist=true