Re: [PATCH 4/5] x86: Use generic compat audit code

From: Ingo Molnar
Date: Wed Mar 04 2015 - 02:09:50 EST



* Brian Gerst <brgerst@xxxxxxxxx> wrote:

> On Wed, Mar 4, 2015 at 12:14 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >
> > * Brian Gerst <brgerst@xxxxxxxxx> wrote:
> >
> >> Use the generic compat syscall audit code instead of an x86 specific
> >> implementation.
> >>
> >> Signed-off-by: Brian Gerst <brgerst@xxxxxxxxx>
> >> ---
> >> arch/x86/Kconfig | 5 +--
> >> arch/x86/ia32/Makefile | 3 --
> >> arch/x86/ia32/audit.c | 43 ---------------------
> >> arch/x86/include/asm/unistd32.h | 2 +
> >> arch/x86/kernel/Makefile | 2 -
> >> arch/x86/kernel/audit_64.c | 82 -----------------------------------------
> >> 6 files changed, 3 insertions(+), 134 deletions(-)
> >> delete mode 100644 arch/x86/ia32/audit.c
> >> create mode 100644 arch/x86/include/asm/unistd32.h
> >> delete mode 100644 arch/x86/kernel/audit_64.c
> >
> > Nice!
> >
> > Because there are many types of conversions it would be nice if the
> > changelog included a declaration of some sorts about what this means
> > precisely: 'the two implementations were 100% identical', or 'the x86
> > one was buggy and we now switch to the correct generic one', or 'the
> > only difference between the two is X, Y and Z, which is not a
> > problem'?
> >
> > Thanks,
> >
> > Ingo
>
> The generic compat version was added along with the arm64 support.
> It is functionally equivalent to the x86-specific implementation.
> The main difference is using audit_is_compat() instead of a
> hardcoded check for AUDIT_ARCH_I386.
>
> I just noticed a bug in lib/compat_audit.c though. It is missing
> __NR_execveat.

Another asymmetry is that lib/compat_audit.c covers __NR_socketcall,
while arch/x86/kernel/audit.c does not.

But that's an improvement I think: for __NR_socketcall the old x86
code would not do the socketcall permission check for SYS_BIND, which
is an audit record generation bug AFAICS.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/