Re: [PATCH] zram: fix null dereference of handle

From: Sergey Senozhatsky
Date: Tue Sep 19 2017 - 06:15:22 EST


Hi Minchan,

On (09/19/17 15:59), Minchan Kim wrote:
[..]
> > another question, "!handle == value & ZRAM_SAME"? if so, then why not
> > just check for `flags & ZRAM_SAME'? if not then:
> >
> > - for `value & ZRAM_SAME' you fill the page with zram_get_element(zram, index)
> > and return 0. ok.
> >
> > - for !handle.... you also fill the page with zram_get_element(zram, index)
> > and return 0. is this ok? shouldn't !handle return error in this case?
>
> We discussed it before that we shouldn't return error.
> Userspace can ask reading unallocated buffer freely.

ok, so this is intentional behaviour.

> And in this case, it fills the buffer zero because handle and element is unified.
> However, if your concern is readability, I will make it more explict.

correct.
... but I thought that we would also return an error.

> > I really suspect that there are some paths that can lead to !handle
> > entry, that will not be ZRAM_SAME. e.g. error return from compression
> > path.
>
> Could you be more specific?

I just meant that there are error paths in zram write, which will leave
us both with !handle entries and !ZRAM_SAME. but it seems that this is
the intentional behaviour.

-ss