[PATCH] x86-64: Check return value of putreg in PTRACE_SETREGS
This means if an illegal value is set for the segment registers there ptrace will error out now with an errno instead of silently ignoring it. Signed-off-by: Andi Kleen <ak@suse.de>
This commit is contained in:
Родитель
2f7a2a79c3
Коммит
f49481bc50
|
@ -536,8 +536,12 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
||||||
}
|
}
|
||||||
ret = 0;
|
ret = 0;
|
||||||
for (ui = 0; ui < sizeof(struct user_regs_struct); ui += sizeof(long)) {
|
for (ui = 0; ui < sizeof(struct user_regs_struct); ui += sizeof(long)) {
|
||||||
ret |= __get_user(tmp, (unsigned long __user *) data);
|
ret = __get_user(tmp, (unsigned long __user *) data);
|
||||||
putreg(child, ui, tmp);
|
if (ret)
|
||||||
|
break;
|
||||||
|
ret = putreg(child, ui, tmp);
|
||||||
|
if (ret)
|
||||||
|
break;
|
||||||
data += sizeof(long);
|
data += sizeof(long);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче