diff options
author | trasz <trasz@FreeBSD.org> | 2009-01-23 21:08:00 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2009-01-23 21:08:00 +0000 |
commit | e825cd3c8423be16b445182814056a8e70d9d6fe (patch) | |
tree | a3a60d1637318caa497c59c1b6d947c5689825f5 /sys/cam | |
parent | 4c4c620921c8b4c20f7dc07d08913f8a39f7f659 (diff) | |
download | FreeBSD-src-e825cd3c8423be16b445182814056a8e70d9d6fe.zip FreeBSD-src-e825cd3c8423be16b445182814056a8e70d9d6fe.tar.gz |
Protect against NULL pointer dereference.
Reviewed by: scottl
Approved by: rwatson (mentor)
Sponsored by: FreeBSD Foundation
Diffstat (limited to 'sys/cam')
-rw-r--r-- | sys/cam/cam_xpt.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 112476b..4bf3338 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -5194,6 +5194,11 @@ xpt_scan_bus(struct cam_periph *periph, union ccb *request_ccb) /* Save some state for use while we probe for devices */ scan_info = (xpt_scan_bus_info *) malloc(sizeof(xpt_scan_bus_info), M_CAMXPT, M_NOWAIT); + if (scan_info == NULL) { + request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; + xpt_done(request_ccb); + return; + } scan_info->request_ccb = request_ccb; scan_info->cpi = &work_ccb->cpi; |