mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
If both the tracer and the tracee are compat processes, and gprs[2] is assigned a value by __poke_user_compat, then the higher 32 bits of gprs[2] are cleared, IS_ERR_VALUE() always returns false, and syscall_get_error() always returns 0. Fix the implementation by sign-extending the value for compat processes the same way as x86 implementation does. The bug was exposed to user space by commit |
||
|---|---|---|
| .. | ||
| asm | ||
| uapi/asm | ||