--- ul/fs/proc/base.c.~1~ 2003-09-19 03:38:17.000000000 +0200 +++ ul/fs/proc/base.c 1999-10-01 00:10:59.000000000 +0200 @@ -610,8 +610,10 @@ static int do_proc_readlink(struct dentr inode = dentry->d_inode; path = d_path(dentry, mnt, tmp, PAGE_SIZE); - if (IS_ERR(path)) + if (IS_ERR(path)) { + free_page((unsigned long)tmp); return PTR_ERR(path); + } len = tmp + PAGE_SIZE - 1 - path; if (len < buflen)