Re: [WTF?] sys_tas() on m32r

From: liyu
Date: Fri Dec 23 2005 - 02:49:41 EST


Al Viro åé:

asmlinkage int sys_tas(int *addr)
{
int oldval;
unsigned long flags;

if (!access_ok(VERIFY_WRITE, addr, sizeof (int)))
return -EFAULT;
local_irq_save(flags);
oldval = *addr;
if (!oldval)
*addr = 1;
local_irq_restore(flags);
return oldval;
}
in arch/m32r/kernel/sys_m32r.c. Trivial oops *AND* ability to trigger
IO with interrupts disabled.
-
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/




The memory that parameter addr pointer is in user-space.
To access these memory, you should use function like copy_from_user().

-liyu




-
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/