Skip to content

Commit

Permalink
[IA64] forbid ptrace changes psr.ri to 3
Browse files Browse the repository at this point in the history
The "ri" field in the processor status register only has defined
values of 0, 1, 2.  Do not let ptrace set this to 3.  As with
other reserved fields in registers we silently discard the value.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
  • Loading branch information
Shaohua Li authored and Tony Luck committed Aug 17, 2007
1 parent e8c59c0 commit b09e789
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions arch/ia64/kernel/ptrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -951,10 +951,14 @@ access_uarea (struct task_struct *child, unsigned long addr,
return 0;

case PT_CR_IPSR:
if (write_access)
pt->cr_ipsr = ((*data & IPSR_MASK)
if (write_access) {
unsigned long tmp = *data;
/* psr.ri==3 is a reserved value: SDM 2:25 */
if ((tmp & IA64_PSR_RI) == IA64_PSR_RI)
tmp &= ~IA64_PSR_RI;
pt->cr_ipsr = ((tmp & IPSR_MASK)
| (pt->cr_ipsr & ~IPSR_MASK));
else
} else
*data = (pt->cr_ipsr & IPSR_MASK);
return 0;

Expand Down

0 comments on commit b09e789

Please sign in to comment.