mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 22:22:51 -04:00
ceph: avoid null deref in osd request error path
If we interrupt an osd request, we call __cancel_request, but it wasn't verifying that req->r_osd was non-NULL before dereferencing it. This could cause a crash if osds were flapping and we aborted a request on said osd. Reported-by: Henry C Chang <henry_c_chang@tcloudcomputing.com> Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
@@ -549,7 +549,7 @@ static void __unregister_request(struct ceph_osd_client *osdc,
|
||||
*/
|
||||
static void __cancel_request(struct ceph_osd_request *req)
|
||||
{
|
||||
if (req->r_sent) {
|
||||
if (req->r_sent && req->r_osd) {
|
||||
ceph_con_revoke(&req->r_osd->o_con, req->r_request);
|
||||
req->r_sent = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user