linux-user: Add support for prctl PR_GET_NAME and PR_SET_NAME
Add support for the prctl options PR_GET_NAME and PR_SET_NAME, which take or return a name in a 16 byte buffer pointed to by arg2. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
1e6722f8b0
commit
db9526b10a
@ -7253,6 +7253,30 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
}
|
||||
break;
|
||||
}
|
||||
#ifdef PR_GET_NAME
|
||||
case PR_GET_NAME:
|
||||
{
|
||||
void *name = lock_user(VERIFY_WRITE, arg2, 16, 1);
|
||||
if (!name) {
|
||||
goto efault;
|
||||
}
|
||||
ret = get_errno(prctl(arg1, (unsigned long)name,
|
||||
arg3, arg4, arg5));
|
||||
unlock_user(name, arg2, 16);
|
||||
break;
|
||||
}
|
||||
case PR_SET_NAME:
|
||||
{
|
||||
void *name = lock_user(VERIFY_READ, arg2, 16, 1);
|
||||
if (!name) {
|
||||
goto efault;
|
||||
}
|
||||
ret = get_errno(prctl(arg1, (unsigned long)name,
|
||||
arg3, arg4, arg5));
|
||||
unlock_user(name, arg2, 0);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
/* Most prctl options have no pointer arguments */
|
||||
ret = get_errno(prctl(arg1, arg2, arg3, arg4, arg5));
|
||||
|
Loading…
Reference in New Issue
Block a user