提交 66e0f263 编写于 作者: E Eric W. Biederman

signal/arm64: Better isolate the COMPAT_TASK portion of ptrace_hbptriggered

Instead of jumpping while !is_compat_task placee all of the code
inside of an if (is_compat_task) block.  This allows the int i
variable to be properly limited to the compat block no matter how the
rest of ptrace_hbptriggered changes.

In a following change a non-variable declaration will preceed
was made independent to ensure the code is easy to review.
Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
上级 0752d7bf
......@@ -188,26 +188,23 @@ static void ptrace_hbptriggered(struct perf_event *bp,
};
#ifdef CONFIG_COMPAT
int i;
if (!is_compat_task())
goto send_sig;
if (is_compat_task()) {
int i;
for (i = 0; i < ARM_MAX_BRP; ++i) {
if (current->thread.debug.hbp_break[i] == bp) {
info.si_errno = (i << 1) + 1;
break;
for (i = 0; i < ARM_MAX_BRP; ++i) {
if (current->thread.debug.hbp_break[i] == bp) {
info.si_errno = (i << 1) + 1;
break;
}
}
}
for (i = 0; i < ARM_MAX_WRP; ++i) {
if (current->thread.debug.hbp_watch[i] == bp) {
info.si_errno = -((i << 1) + 1);
break;
for (i = 0; i < ARM_MAX_WRP; ++i) {
if (current->thread.debug.hbp_watch[i] == bp) {
info.si_errno = -((i << 1) + 1);
break;
}
}
}
send_sig:
#endif
force_sig_info(SIGTRAP, &info, current);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册