|
Viewing Issue Simple Details
[ Jump to Notes ]
|
[ View Advanced ]
[ Issue History ]
[ Print ]
|
|
ID |
Category |
Severity |
Reproducibility |
Date Submitted |
Last Update |
|
0000771 |
[uClibc] Architecture Specific |
major |
always |
03-05-06 08:54 |
09-15-07 02:19 |
|
|
Reporter |
andreas |
View Status |
public |
|
|
Assigned To |
uClibc |
|
Priority |
normal |
Resolution |
fixed |
|
|
Status |
closed |
|
Product Version |
|
|
|
Summary |
0000771: mips32 syscall() bug on error code return |
|
Description |
For mips32 syscall() doesn't return -1 on error. If kernel return with an error from syscall, return value of syscall() is not set correct. syscall() returns the error number instead of -1. |
|
Additional Information |
If an error occurs on syscall, the kernel sets register a3 to a value not equal zero and return error code in register v0. For additional infos look at the _syscall* macros defined in kernel-headers.
If have attached a patch against snapshot of 04.03.2006, which checks for an error and sets errno by calling __syscall_error. I haven't touched the mips64 code.
For me the bug stops the new threadlib working correct, cause it calls syscall() directly. |
|
|
Attached Files |
mips32-syscall-fix.patch [^] (715 bytes) 03-05-06 08:54 |
|
|