From 2ab74cd29622c48e9852d85618081c061b6ac6d9 Mon Sep 17 00:00:00 2001 From: Liu Bo Date: Tue, 29 May 2018 16:29:12 +0800 Subject: [PATCH] blk-throttle: fix potential NULL pointer dereference in throtl_select_dispatch tg in throtl_select_dispatch is used first and then do check. Since tg may be NULL, it has potential NULL pointer dereference risk. So fix it. Signed-off-by: Joseph Qi Signed-off-by: Liu Bo Signed-off-by: Jens Axboe --- block/blk-throttle.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/block/blk-throttle.c b/block/blk-throttle.c index f63d88c92c3a..35bed770664d 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c @@ -1207,7 +1207,7 @@ static int throtl_select_dispatch(struct throtl_service_queue *parent_sq) while (1) { struct throtl_grp *tg = throtl_rb_first(parent_sq); - struct throtl_service_queue *sq = &tg->service_queue; + struct throtl_service_queue *sq; if (!tg) break; @@ -1219,6 +1219,7 @@ static int throtl_select_dispatch(struct throtl_service_queue *parent_sq) nr_disp += throtl_dispatch_tg(tg); + sq = &tg->service_queue; if (sq->nr_queued[0] || sq->nr_queued[1]) tg_update_disptime(tg);