Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a0836a0 authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Jens Axboe
Browse files

cfq_get_queue: fix possible NULL pointer access



cfq_get_queue()->cfq_find_alloc_queue() can fail, check the returned value.

Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>

Note that this isn't a bug at the moment, since the regular IO path
does not call this path without __GFP_WAIT set. However, it could be a
future bug, so I've applied it.

Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent abbeb88d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1443,8 +1443,11 @@ cfq_get_queue(struct cfq_data *cfqd, int is_sync, struct task_struct *tsk,
		cfqq = *async_cfqq;
	}

	if (!cfqq)
	if (!cfqq) {
		cfqq = cfq_find_alloc_queue(cfqd, is_sync, tsk, gfp_mask);
		if (!cfqq)
			return NULL;
	}

	/*
	 * pin the queue now that it's allocated, scheduler exit will prune it