Usermode/ld-acess - Syscall stub changes
[tpg/acess2.git] / Usermode / Libraries / ld-acess.so_src / arch / x86_64.asm.h
index ea605ef..62fc400 100644 (file)
@@ -152,6 +152,9 @@ clone:
        push rbp
        mov rbp, rsp
        push rbx
+       push r11
+       
+       mov r12, rsi    ; Save in a reg for after the clone
        
        ; Check if the new stack is being used
        test rsi, rsi
@@ -166,10 +169,19 @@ clone:
        mov eax, SYS_CLONE
        SYSCALL_OP
        mov [rel _errno], ebx
+
+       ; Change stack pointer
+       test eax, eax
+       jnz .ret
+       test r12, r12
+       jz .ret
+       mov rsp, rsi
+.ret:
        pop rbx
        pop rbp
        ret
 
+
 [global _exit:func]
 _exit:
        xor eax, eax

UCC git Repository :: git.ucc.asn.au