From 76b53ad30c5b9d1defa63bc3ef91b378e5e27c92 Mon Sep 17 00:00:00 2001 From: root <> Date: Sat, 17 May 2025 08:37:23 +0000 Subject: [PATCH] fix: negative line length, write(2) to bad fd --- client.s | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/client.s b/client.s index 85fed8d..fa59078 100644 --- a/client.s +++ b/client.s @@ -92,15 +92,17 @@ client__pollout: mov rbx, rdx mov r12, rsi + push rdi mov rdi, r12 + add rdi, OFFSET_CLIENT_BUFFER mov rsi, 255 call scanline + pop rdi ; poll(2)'d for POLLOUT but we had no line buffered; ; should be impossible cmp rax, 0 - mov rax, -1024 - je client__pollout__return + je client__pollout__no_line mov r13, rax @@ -135,6 +137,9 @@ client__pollout__shunt__finished: jl client__pollout__return mov word [pollfds + rbx * pollfd_size + 4], POLLIN +client__pollout__no_line: + mov rax, -1024 + client__pollout__return: pop r13 pop r12