summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2009-01-23 21:08:00 +0000
committertrasz <trasz@FreeBSD.org>2009-01-23 21:08:00 +0000
commite825cd3c8423be16b445182814056a8e70d9d6fe (patch)
treea3a60d1637318caa497c59c1b6d947c5689825f5 /sys/cam
parent4c4c620921c8b4c20f7dc07d08913f8a39f7f659 (diff)
downloadFreeBSD-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.c5
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;
OpenPOWER on IntegriCloud