diff --git a/file.asm b/file.asm index db0a611..c2acbef 100644 --- a/file.asm +++ b/file.asm @@ -86,9 +86,17 @@ fclose: push rbp mov rbp, rsp + cmp rdi, 3 + jl .ebadf + mov rax, NR_close syscall + jmp .quit + .ebadf: + mov rax, -9 + + .quit: leave ret ;----- fwrite(FILE* fp, char* str) -----; @@ -98,6 +106,9 @@ fwrite: push rbp mov rbp, rsp + cmp rdi, 3 + jl .ebadf + mov r9, rdi mov rdi, rsi call strlen @@ -105,6 +116,11 @@ fwrite: mov rax, NR_write mov rdi, r9 syscall + jmp .quit + .ebadf: + mov rax, -9 + + .quit: leave ret