Re: [PATCH 1/2] ARM: add finit_module syscall to ARM

From: Kees Cook
Date: Fri Sep 21 2012 - 13:26:22 EST


On Fri, Sep 21, 2012 at 9:51 AM, Russell King <rmk@xxxxxxxxxxxxxxxx> wrote:
> On Fri, Sep 21, 2012 at 08:58:00AM -0700, Kees Cook wrote:
>> Add finit_module syscall to the ARM syscall list.
>>
>> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
>> Cc: Russell King <rmk@xxxxxxxxxxxxxxxx>
>> ---
>> arch/arm/include/asm/unistd.h | 1 +
>> arch/arm/kernel/calls.S | 1 +
>> 2 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
>> index 0cab47d..904b579 100644
>> --- a/arch/arm/include/asm/unistd.h
>> +++ b/arch/arm/include/asm/unistd.h
>> @@ -404,6 +404,7 @@
>> #define __NR_setns (__NR_SYSCALL_BASE+375)
>> #define __NR_process_vm_readv (__NR_SYSCALL_BASE+376)
>> #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377)
>> +#define __NR_finit_module (__NR_SYSCALL_BASE+378)
>
> This gives us a different syscall ordering if we add the kcmp syscall.
>
> That brings up another question though - when was kcmp added to x86, and
> why aren't we getting notifications from checksyscalls.sh that ARM hasn't
> been updated?
>
> It seems to be that the script was broken, and no one has noticed.
>
> commit 29dc54c673ea2531d589400badb4ada5f5f60dae
> Author: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
> Date: Fri Nov 11 15:57:53 2011 -0800
>
> checksyscalls: Use arch/x86/syscalls/syscall_32.tbl as source
>
> Use the new arch/x86/syscalls/syscall_32.tbl file as source instead of
> arch/x86/include/asm/unistd_32.h.
>
> Cc: Michal Marek <mmarek@xxxxxxx>
> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
>
> is the culpret, more specifically this fragment:
>
> + echo <<EOF
> +#if !defined(__NR_${name}) && !defined(__IGNORE_${name})
> +#warning syscall ${name} not implemented
> +#endif
> +EOF
>
> "echo <<EOF" doesn't read from its stdin and output to stdout, so the
> above just generates a blank line for each entry in x86's syscalls_32.tbl,
> resulting in the compiler doing no checking for us.
>
> That "echo <<EOF" should be "cat <<EOF"... and with that fixed we get:
>
> <stdin>:1220:2: warning: #warning syscall kcmp not implemented
>
> So, actually, I want to add this kcmp syscall _now_ into -rc which I'm
> afraid will break your patch, and bump your syscall number on ARM to 379.

That's fine by me. I'll adjust my patch series.

Thanks!

-Kees

--
Kees Cook
Chrome OS Security
--
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/