mirror of
git://git.musl-libc.org/musl
synced 2025-01-18 21:01:01 +00:00
mips archs: fix runaway execution if start fn passed to clone returns
Call SYS_exit on return from fn in __clone. This is the expected behavior of this function. Without this the child task will crash on return from fn, since it will return to nowhere.
This commit is contained in:
parent
91e1e29d6d
commit
8b2b61e000
@ -28,5 +28,8 @@ __clone:
|
||||
nop
|
||||
1: lw $25, 0($sp)
|
||||
lw $4, 4($sp)
|
||||
jr $25
|
||||
jalr $25
|
||||
nop
|
||||
move $4, $2
|
||||
li $2, 4001
|
||||
syscall
|
||||
|
@ -26,5 +26,8 @@ __clone:
|
||||
nop
|
||||
1: ld $25, 0($sp) # function pointer
|
||||
ld $4, 8($sp) # argument pointer
|
||||
jr $25 # call the user's function
|
||||
jalr $25 # call the user's function
|
||||
nop
|
||||
move $4, $2
|
||||
li $2, 5058
|
||||
syscall
|
||||
|
@ -26,5 +26,8 @@ __clone:
|
||||
nop
|
||||
1: lw $25, 0($sp) # function pointer
|
||||
lw $4, 4($sp) # argument pointer
|
||||
jr $25 # call the user's function
|
||||
jalr $25 # call the user's function
|
||||
nop
|
||||
move $4, $2
|
||||
li $2, 6058
|
||||
syscall
|
||||
|
Loading…
Reference in New Issue
Block a user