block, bfq: don't dereference bic before null checking it
authorColin Ian King <colin.king@canonical.com>
Thu, 20 Apr 2017 14:07:18 +0000 (15:07 +0100)
committerJens Axboe <axboe@fb.com>
Thu, 20 Apr 2017 14:19:23 +0000 (08:19 -0600)
The call to bfq_check_ioprio_change will dereference bic, however,
the null check for bic is after this call.  Move the the null
check on bic to before the call to avoid any potential null
pointer dereference issues.

Detected by CoverityScan, CID#1430138 ("Dereference before null check")

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/bfq-iosched.c

index 6d14f18c0d45a9188068d8de39ec748d6e1c042e..bd8499ef157ce8786c6eaa164448eb0bf9e84c6c 100644 (file)
@@ -4401,11 +4401,11 @@ static int bfq_get_rq_private(struct request_queue *q, struct request *rq,
 
        spin_lock_irq(&bfqd->lock);
 
-       bfq_check_ioprio_change(bic, bio);
-
        if (!bic)
                goto queue_fail;
 
+       bfq_check_ioprio_change(bic, bio);
+
        bfq_bic_update_cgroup(bic, bio);
 
        bfqq = bfq_get_bfqq_handle_split(bfqd, bic, bio, false, is_sync,