2018-09-06 08:07:20

by Konstantin Khlebnikov

[permalink] [raw]
Subject: [PATCH] block: bfq: swap puts in bfqg_and_blkg_put

Fix trivial use-after-free. This could be last reference to bfqg.

Signed-off-by: Konstantin Khlebnikov <[email protected]>
Fixes: 8f9bebc33dd7 ("block, bfq: access and cache blkg data only when safe")
---
block/bfq-cgroup.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 58c6efa9f9a9..9fe5952d117d 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -275,9 +275,9 @@ static void bfqg_and_blkg_get(struct bfq_group *bfqg)

void bfqg_and_blkg_put(struct bfq_group *bfqg)
{
- bfqg_put(bfqg);
-
blkg_put(bfqg_to_blkg(bfqg));
+
+ bfqg_put(bfqg);
}

/* @stats = 0 */



2018-09-06 17:32:23

by Paolo Valente

[permalink] [raw]
Subject: Re: [PATCH] block: bfq: swap puts in bfqg_and_blkg_put



> Il giorno 06 set 2018, alle ore 10:05, Konstantin Khlebnikov <[email protected]> ha scritto:
>
> Fix trivial use-after-free. This could be last reference to bfqg.
>

Acked-by: Paolo Valente <[email protected]>

> Signed-off-by: Konstantin Khlebnikov <[email protected]>
> Fixes: 8f9bebc33dd7 ("block, bfq: access and cache blkg data only when safe")
> ---
> block/bfq-cgroup.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
> index 58c6efa9f9a9..9fe5952d117d 100644
> --- a/block/bfq-cgroup.c
> +++ b/block/bfq-cgroup.c
> @@ -275,9 +275,9 @@ static void bfqg_and_blkg_get(struct bfq_group *bfqg)
>
> void bfqg_and_blkg_put(struct bfq_group *bfqg)
> {
> - bfqg_put(bfqg);
> -
> blkg_put(bfqg_to_blkg(bfqg));
> +
> + bfqg_put(bfqg);
> }
>
> /* @stats = 0 */
>


2018-09-06 17:35:21

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] block: bfq: swap puts in bfqg_and_blkg_put

On 9/6/18 2:05 AM, Konstantin Khlebnikov wrote:
> Fix trivial use-after-free. This could be last reference to bfqg.

Applied, thanks.

--
Jens Axboe