Skip to content

Commit

Permalink
sh: Fix up the audit arch endian specification.
Browse files Browse the repository at this point in the history
Presently this was always being set to AUDIT_ARCH_SH, which assumes
big endian. Fix this up so that the architecture actually reflects
what we're running on.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Aug 1, 2008
1 parent ab99c73 commit 9e5e211
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
13 changes: 12 additions & 1 deletion arch/sh/kernel/ptrace_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,17 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
return ret;
}

static inline int audit_arch(void)
{
int arch = EM_SH;

#ifdef CONFIG_CPU_LITTLE_ENDIAN
arch |= __AUDIT_ARCH_LE;
#endif

return arch;
}

asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
{
long ret = 0;
Expand All @@ -233,7 +244,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
ret = -1L;

if (unlikely(current->audit_context))
audit_syscall_entry(AUDIT_ARCH_SH, regs->regs[3],
audit_syscall_entry(audit_arch(), regs->regs[3],
regs->regs[4], regs->regs[5],
regs->regs[6], regs->regs[7]);

Expand Down
16 changes: 15 additions & 1 deletion arch/sh/kernel/ptrace_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,20 @@ asmlinkage int sh64_ptrace(long request, long pid, long addr, long data)
return sys_ptrace(request, pid, addr, data);
}

static inline int audit_arch(void)
{
int arch = EM_SH;

#ifdef CONFIG_64BIT
arch |= __AUDIT_ARCH_64BIT;
#endif
#ifdef CONFIG_CPU_LITTLE_ENDIAN
arch |= __AUDIT_ARCH_LE;
#endif

return arch;
}

asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs)
{
long long ret = 0;
Expand All @@ -238,7 +252,7 @@ asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs)
ret = -1LL;

if (unlikely(current->audit_context))
audit_syscall_entry(AUDIT_ARCH_SH, regs->regs[1],
audit_syscall_entry(audit_arch(), regs->regs[1],
regs->regs[2], regs->regs[3],
regs->regs[4], regs->regs[5]);

Expand Down

0 comments on commit 9e5e211

Please sign in to comment.