Re: [CHECKER] 4 security holes in 2.4.4-ac8

Keith Owens (kaos@ocs.com.au)
Wed, 30 May 2001 20:33:57 +1000


On 30 May 2001 11:38:13 +0200,
Andi Kleen <ak@suse.de> wrote:
>"David S. Miller" <davem@redhat.com> writes:
>
>> Dawson Engler writes:
>> > Is there any way to automatically find these? E.g., is any routine
>> > with "asmlinkage" callable from user space?
>>
>> This is only universally done in generic and x86 specific code,
>> other ports tend to forget asmlinkage simply because most ports
>> don't need it.
>
>Even i386 doesn't need it because the stack frame happens to have the
>right order of the arguments at the right position. Just you can get into
>weird bugs when any function modifies their argument because it'll be still
>modified after syscall restart but only depending if the compiler used a
>temporary register or not.

For IA64 you *must* use asmlinkage because the first 8 parameters are
passed in registers. gcc will happily modify the register values which
will mess up syscall restart, unless you use asmlinkage to force gcc to
take copies of parameters and modify the copies.

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