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