From: Liu Bo Date: Tue, 29 May 2018 08:29:12 +0000 (+0800) Subject: blk-throttle: fix potential NULL pointer dereference in throtl_select_dispatch X-Git-Tag: v4.18-rc1~192^2~53 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=2ab74cd29622c48e9852d85618081c061b6ac6d9;p=linux.git 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 --- 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);