The memset which is performed if access_ok() fails got lost in the copy_*_user() rework. Put it back. Bloats the kernel by 8k :( include/asm-i386/uaccess.h | 2 ++ 1 files changed, 2 insertions(+) diff -puN include/asm-i386/uaccess.h~ia32-copy_from_user-fix include/asm-i386/uaccess.h --- 25/include/asm-i386/uaccess.h~ia32-copy_from_user-fix 2003-06-18 09:51:13.000000000 -0700 +++ 25-akpm/include/asm-i386/uaccess.h 2003-06-18 09:51:14.000000000 -0700 @@ -494,6 +494,8 @@ copy_from_user(void *to, const void __us { if (access_ok(VERIFY_READ, from, n)) n = __copy_from_user(to, from, n); + else + memset(to, 0, n); return n; } _