kernel/fxf: Free memory used by binary if relocation fails
This commit is contained in:
parent
50ea28fc7e
commit
b3d9a4a6eb
|
@ -102,7 +102,7 @@ launch_fxf_from_open_file_1:
|
||||||
mov r0, [launch_fxf_binary_ptr]
|
mov r0, [launch_fxf_binary_ptr]
|
||||||
call parse_fxf_binary
|
call parse_fxf_binary
|
||||||
cmp r0, 0
|
cmp r0, 0
|
||||||
ifz jmp launch_fxf_from_disk_file_error
|
ifz jmp launch_fxf_from_disk_reloc_error
|
||||||
|
|
||||||
; create a new task
|
; create a new task
|
||||||
mov r1, r0
|
mov r1, r0
|
||||||
|
@ -139,6 +139,20 @@ launch_fxf_from_disk_file_error:
|
||||||
pop r1
|
pop r1
|
||||||
mov r0, 0xFFFFFFFF
|
mov r0, 0xFFFFFFFF
|
||||||
ret
|
ret
|
||||||
|
launch_fxf_from_disk_reloc_error:
|
||||||
|
mov r0, [launch_fxf_binary_ptr]
|
||||||
|
call free_memory
|
||||||
|
mov r0, [launch_fxf_stack_ptr]
|
||||||
|
call free_memory
|
||||||
|
|
||||||
|
pop r6
|
||||||
|
pop r5
|
||||||
|
pop r4
|
||||||
|
pop r3
|
||||||
|
pop r2
|
||||||
|
pop r1
|
||||||
|
mov r0, 0xFFFFFFFF
|
||||||
|
ret
|
||||||
|
|
||||||
launch_fxf_struct_ptr: data.32 0
|
launch_fxf_struct_ptr: data.32 0
|
||||||
launch_fxf_struct: data.fill 0, 32
|
launch_fxf_struct: data.fill 0, 32
|
||||||
|
|
Loading…
Reference in New Issue
Block a user