Re: zram: fix invalid memory references during disk write

From: Nitin Gupta
Date: Wed Dec 12 2012 - 23:30:50 EST


On 12/11/2012 10:27 AM, Greg KH wrote:
> On Thu, Nov 29, 2012 at 10:45:09PM -0800, Nitin Gupta wrote:
>> Fixes a bug introduced by commit c8f2f0db1 ("zram: Fix handling
>> of incompressible pages") which caused invalid memory references
>> during disk write. Invalid references could occur in two cases:
>> - Incoming data expands on compression: In this case, reference was
>> made to kunmap()'ed bio page.
>> - Partial (non PAGE_SIZE) write with incompressible data: In this
>> case, reference was made to a kfree()'ed buffer.
>>
>> Fixes bug 50081:
>> https://bugzilla.kernel.org/show_bug.cgi?id=50081
>>
>> Upstream commit ID: c8f2f0d: zram: Fix handling of incompressible pages
>> Apply to versions: 3.6.5, 3.6.6, 3.6.7, 3.6.8
>>
>> Cc: <stable@xxxxxxxxxxxxxxx> # staging-next: 37b51fd: zram: factor-out
>> # zram_decompress_page() function
>> Signed-off-by: Nitin Gupta <ngupta@xxxxxxxxxx>
>> Reported-by: Mihail Kasadjikov <hamer.mk@xxxxxxxxx>
>> Reported-by: Tomas M <tomas@xxxxxxxx>
>> Reviewed-by: Minchan Kim <minchan@xxxxxxxxxx>
>> ---
>> drivers/staging/zram/zram_drv.c | 39 ++++++++++++++++++++++++---------------
>> 1 file changed, 24 insertions(+), 15 deletions(-)
>
> This patch fails to apply to 3.6.10:
>
> patching file drivers/staging/zram/zram_drv.c
> Hunk #1 succeeded at 282 (offset 17 lines).
> Hunk #2 FAILED at 286.
> Hunk #3 succeeded at 319 (offset 17 lines).
> Hunk #4 succeeded at 340 (offset 17 lines).
> Hunk #5 succeeded at 353 (offset 17 lines).
> Hunk #6 succeeded at 368 (offset 17 lines).
> Hunk #7 succeeded at 385 (offset 17 lines).
> 1 out of 7 hunks FAILED -- saving rejects to file drivers/staging/zram/zram_drv.c.rej
>
> Please redo this patch and resend it if you wish for it to be applied to
> the 3.6-stable tree.
>

Please apply 37b51fd ("zram: factor-out zram_decompress_page()
function") before applying this patch. I also mentioned this in the
changelog description above in the format as specified in
stable_kernel_rules.txt but looks like I misunderstood that doc.

Thanks,
Nitin


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/