Re: 2.6.13.3 Memory leak, names_cache

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Thu, 6 Oct 2005, Rick Lindsley wrote:
> 
> The code in open_namei() is a bit non-intuitive in error conditions,
> but the general fix appears to be pretty straightforward.  Let me know if
> this patch seems to do the trick for you.

This patch seems to be correct.

As far as I can tell, the name in "last.name" has always been allocated 
with "__getname()", and it should thus always be free'd with "__putname()" 
in order to not cause trouble with the horrible AUDITSYSCALL code.

Now, very arguably the real bug is that bug-prone code in AUDITSYSCALL, 
but I suspect that for 2.6.14 I should just apply this patch.

Al? Any comments? (Full patch quoted here in case you haven't followed the 
mailing list)

		Linus

> --- linux-2.6.13.3/fs/namei.c	2005-08-28 16:41:01.000000000 -0700
> +++ linux-2.6.13.3-new/fs/namei.c	2005-10-06 12:45:41.996243768 -0700
> @@ -1557,19 +1557,19 @@ do_link:
>  	if (nd->last_type != LAST_NORM)
>  		goto exit;
>  	if (nd->last.name[nd->last.len]) {
> -		putname(nd->last.name);
> +		__putname(nd->last.name);
>  		goto exit;
>  	}
>  	error = -ELOOP;
>  	if (count++==32) {
> -		putname(nd->last.name);
> +		__putname(nd->last.name);
>  		goto exit;
>  	}
>  	dir = nd->dentry;
>  	down(&dir->d_inode->i_sem);
>  	path.dentry = __lookup_hash(&nd->last, nd->dentry, nd);
>  	path.mnt = nd->mnt;
> -	putname(nd->last.name);
> +	__putname(nd->last.name);
>  	goto do_last;
>  }
>  
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux