--- ./fs/proc/base.c.orig Sun Jan 4 01:18:43 2004 +++ ./fs/proc/base.c Sun Jan 4 01:19:16 2004 @@ -357,7 +357,10 @@ if (count + *ppos > length) count = length - *ppos; end = count + *ppos; - copy_to_user(buf, (char *) page + *ppos, count); + if (copy_to_user(buf, (char *) page + *ppos, count)) { + free_page(page); + return -EFAULT; + } *ppos = end; free_page(page); return count;