block: fix use-after-free in block flush handling
authorJens Axboe <axboe@kernel.dk>
Sat, 9 Jun 2018 12:37:14 +0000 (06:37 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 9 Jun 2018 12:37:14 +0000 (06:37 -0600)
commit190b02ed79e08983bf62d47c05945c1b06a3d7d5
tree7b1d6db69efaf3ccb7d888d7cdfa1ccb59798178
parent77016199f11eacd7b23e2faeb4d0f36166e3530b
block: fix use-after-free in block flush handling

A recent commit reused the original request flags for the flush
queue handling. However, for some of the kick flush cases, the
original request was already completed. This caused a use after
free, if blk-mq wasn't used.

Fixes: 84fca1b0c461 ("block: pass failfast and driver-specific flags to flush requests")
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-flush.c