Re: fix kernel crash on stable/linux-3.4.y

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

 



Hi,

On Wed, Dec 07, 2016 at 01:22:00AM +0100, Christian Groessler wrote:
> Hi,
> 
> the attached patch prevents a crash when trying to mount a corrupted ext4
> file system.

Why isn't it a backport of the equivalent mainline commit ? Is mainline
not affected by the same bug ? Unless this is the case (and the mainline
commit which made this one unnecessary) all fixes must go to mainline
first before being backported to stable.

> regards,
> chris
> 

Thanks,
Willy

---
> >From 86344aebe7e3905b2293a7891a68def8cb38a571 Mon Sep 17 00:00:00 2001
> From: Christian Groessler <chris@xxxxxxxxxxxxx>
> Date: Wed, 7 Dec 2016 00:54:03 +0100
> Subject: [PATCH] Fix kernel crash when trying to mount corrupted ext4
>  partition.
> 
> ext4_calculate_overhead(), if successful, sets the 'ret' vatiable to 0.
> Subsequent failures will bail out, with the function returning the 'ret'
> variable as status. Since 'ret' is 0 (indicating no error) the kernel
> will happily continue and eventually crash.
> 
> This change preserves the value of 'ret' across the call to
> ext4_calculate_overhead() in case this function doesn't return an
> error.
> 
> Signed-off-by: Christian Groessler <chris@xxxxxxxxxxxxx>
> ---
>  fs/ext4/super.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 5862518..0f63644 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -3692,9 +3692,12 @@ no_journal:
>  	if (es->s_overhead_clusters)
>  		sbi->s_overhead = le32_to_cpu(es->s_overhead_clusters);
>  	else {
> +		int oret = ret;
>  		ret = ext4_calculate_overhead(sb);
>  		if (ret)
>  			goto failed_mount_wq;
> +		else
> +			ret = oret;
>  	}
>  
>  	/*
> -- 
> 2.7.4
> 

--
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]