sh: Fix up the audit arch endian specification.
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>
This commit is contained in:
parent
ab99c733ae
commit
9e5e21170e
@ -217,6 +217,17 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
|
|||||||
return ret;
|
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)
|
asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
long ret = 0;
|
long ret = 0;
|
||||||
@ -233,7 +244,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
|
|||||||
ret = -1L;
|
ret = -1L;
|
||||||
|
|
||||||
if (unlikely(current->audit_context))
|
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[4], regs->regs[5],
|
||||||
regs->regs[6], regs->regs[7]);
|
regs->regs[6], regs->regs[7]);
|
||||||
|
|
||||||
|
@ -222,6 +222,20 @@ asmlinkage int sh64_ptrace(long request, long pid, long addr, long data)
|
|||||||
return sys_ptrace(request, pid, addr, 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)
|
asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
long long ret = 0;
|
long long ret = 0;
|
||||||
@ -238,7 +252,7 @@ asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs)
|
|||||||
ret = -1LL;
|
ret = -1LL;
|
||||||
|
|
||||||
if (unlikely(current->audit_context))
|
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[2], regs->regs[3],
|
||||||
regs->regs[4], regs->regs[5]);
|
regs->regs[4], regs->regs[5]);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user