nvmet: avoid potential UAF in nvmet_req_complete()
[linux-2.6-block.git] / drivers / nvme / target / core.c
index f66ed13d7c11deacbdfdd982ff8548f913f1b933..3935165048e74199cd4a9706811dd7d63fc39476 100644 (file)
@@ -756,8 +756,10 @@ static void __nvmet_req_complete(struct nvmet_req *req, u16 status)
 
 void nvmet_req_complete(struct nvmet_req *req, u16 status)
 {
+       struct nvmet_sq *sq = req->sq;
+
        __nvmet_req_complete(req, status);
-       percpu_ref_put(&req->sq->ref);
+       percpu_ref_put(&sq->ref);
 }
 EXPORT_SYMBOL_GPL(nvmet_req_complete);