[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150907235922.GB6896@swordfish>
Date: Tue, 8 Sep 2015 08:59:22 +0900
From: Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>
To: Luis Henriques <luis.henriques@...onical.com>
Cc: Minchan Kim <minchan@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>,
linux-kernel@...r.kernel.org,
Sergey Senozhatsky <sergey.senozhatsky@...il.com>
Subject: Re: [PATCH v2] zram: fix possible use after free in zcomp_create()
On (09/07/15 15:13), Luis Henriques wrote:
> zcomp_create() verifies the success of zcomp_strm_{multi,siggle}_create()
> through comp->stream, which can potentially be pointing to memory that was
> freed if these functions returned an error.
>
> Fixes: beca3ec71fe5 ("zram: add multi stream functionality")
> Cc: stable@...r.kernel.org
> Signed-off-by: Luis Henriques <luis.henriques@...onical.com>
Cc Andrew
Acked-by: Sergey Senozhatsky <sergey.senozhatsky@...il.com>
-ss
> ---
> Changes since v1:
> * Check zcomp_strm_{multi,siggle}_create() return code instead
> comp->stream (suggested by Sergey)
>
> drivers/block/zram/zcomp.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c
> index 965d1afb0eaa..8d2cdfd307db 100644
> --- a/drivers/block/zram/zcomp.c
> +++ b/drivers/block/zram/zcomp.c
> @@ -336,6 +336,7 @@ struct zcomp *zcomp_create(const char *compress, int max_strm)
> {
> struct zcomp *comp;
> struct zcomp_backend *backend;
> + int ret;
>
> backend = find_backend(compress);
> if (!backend)
> @@ -347,10 +348,10 @@ struct zcomp *zcomp_create(const char *compress, int max_strm)
>
> comp->backend = backend;
> if (max_strm > 1)
> - zcomp_strm_multi_create(comp, max_strm);
> + ret = zcomp_strm_multi_create(comp, max_strm);
> else
> - zcomp_strm_single_create(comp);
> - if (!comp->stream) {
> + ret = zcomp_strm_single_create(comp);
> + if (ret) {
> kfree(comp);
> return ERR_PTR(-ENOMEM);
> }
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists