[MIPS] syscall() segv on mips1

Maxime Bizon mbizon at freebox.fr
Mon Sep 29 14:04:15 UTC 2008


Hi,

uclibc trunk on mips1 platform, a failed syscall() crashes later in
__syscall_error() from incorrect t9 value.

syscall() has .noreorder, so I guess this explicit 'nop' is needed.


--- libc/sysdeps/linux/mips/syscall.S.orig	2008-09-29 15:59:31.000000000 +0200
+++ libc/sysdeps/linux/mips/syscall.S	2008-09-29 15:59:40.000000000 +0200
@@ -73,6 +73,7 @@
 	SETUP_GP64(v0, syscall)
 	PTR_LA	t9, __syscall_error
 	RESTORE_GP64
+	nop
 	jr	t9
 #else
 	j	__syscall_error


-- 
Maxime




More information about the uClibc mailing list