aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLizzy Fleckenstein <eliasfleckenstein@web.de>2023-08-21 23:39:44 +0200
committerLizzy Fleckenstein <eliasfleckenstein@web.de>2023-08-21 23:39:44 +0200
commit46dd1b6fb22cd18b49b790049a0a728c3a574148 (patch)
tree126130e44d7236629cf069031d4cfdfed3169827
parent521a94c10a23fb608bd63800240fbac9429613a2 (diff)
downloadparadox-46dd1b6fb22cd18b49b790049a0a728c3a574148.tar.xz
read: always clear buffer when exhaustedHEADmaster
-rwxr-xr-xbootstrap.lua15
-rw-r--r--paradox.false15
2 files changed, 8 insertions, 22 deletions
diff --git a/bootstrap.lua b/bootstrap.lua
index ac6cbc4..79fb4f2 100755
--- a/bootstrap.lua
+++ b/bootstrap.lua
@@ -296,22 +296,15 @@ writebuf: resb BUFSIZ
section .text
read:
mov rax, [readbuf_cursor]
-mov rbx, [readbuf_len]
-cmp rax, rbx
+cmp rax, [readbuf_len]
jb .has
-cmp rbx, BUFSIZ
-jb .fill
-xor rbx, rbx
-mov [readbuf_len], rbx
-mov [readbuf_cursor], rbx
-.fill:
mov rax, 0
mov rdi, 0
-lea rsi, [rbx+readbuf]
+mov rsi, readbuf
mov rdx, BUFSIZ
-sub rdx, rbx
syscall
-add [readbuf_len], rax
+mov [readbuf_len], rax
+mov qword[readbuf_cursor], 0
cmp rax, 0
jne .has
mov eax, -1
diff --git a/paradox.false b/paradox.false
index 8c705d1..364d98e 100644
--- a/paradox.false
+++ b/paradox.false
@@ -504,22 +504,15 @@ writebuf: resb BUFSIZ
section .text
read:
mov rax, [readbuf_cursor]
-mov rbx, [readbuf_len]
-cmp rax, rbx
+cmp rax, [readbuf_len]
jb .has
-cmp rbx, BUFSIZ
-jb .fill
-xor rbx, rbx
-mov [readbuf_len], rbx
-mov [readbuf_cursor], rbx
-.fill:
mov rax, 0
mov rdi, 0
-lea rsi, [rbx+readbuf]
+mov rsi, readbuf
mov rdx, BUFSIZ
-sub rdx, rbx
syscall
-add [readbuf_len], rax
+mov [readbuf_len], rax
+mov qword[readbuf_cursor], 0
cmp rax, 0
jne .has
mov eax, -1