Re: [PATCH 3.12,3.13] __dentry_path() fixes

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

 



On Tue, 2014-04-29 at 17:12 -0400, Mikulas Patocka wrote:
> This is backport of the upstream commit 
> f6500801522c61782d4990fa1ad96154cb397cd4. It is suitable for upstream 
> series 3.12 and 3.13. (previous stable kernels don't need this because 
> they don't have the bug).
> 

Queued up for 3.13-stable.

Thanks Mikulas!

 -Kamal


> commit f6500801522c61782d4990fa1ad96154cb397cd4
> Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> Date:   Sun Jan 26 12:37:55 2014 -0500
> 
>     __dentry_path() fixes
>     
>     * we need to save the starting point for restarts
>     * reject pathologically short buffers outright
>     
>     Spotted-by: Denys Vlasenko <dvlasenk@xxxxxxxxxx>
>     Spotted-by: Oleg Nesterov <oleg@xxxxxxxxxx>
>     Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> 
> diff --git a/fs/dcache.c b/fs/dcache.c
> index fdbe230..265e0ce 100644
> --- a/fs/dcache.c
> +++ b/fs/dcache.c
> @@ -3116,19 +3116,22 @@ char *simple_dname(struct dentry *dentry, char *buffer, int buflen)
>  /*
>   * Write full pathname from the root of the filesystem into the buffer.
>   */
> -static char *__dentry_path(struct dentry *dentry, char *buf, int buflen)
> +static char *__dentry_path(struct dentry *d, char *buf, int buflen)
>  {
> +	struct dentry *dentry;
>  	char *end, *retval;
>  	int len, seq = 0;
>  	int error = 0;
>  
> +	if (buflen < 2)
> +		goto Elong;
> +
>  	rcu_read_lock();
>  restart:
> +	dentry = d;
>  	end = buf + buflen;
>  	len = buflen;
>  	prepend(&end, &len, "\0", 1);
> -	if (buflen < 1)
> -		goto Elong;
>  	/* Get '/' right */
>  	retval = end-1;
>  	*retval = '/';
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]