--- sys/cam/cam_xpt.c.orig +++ sys/cam/cam_xpt.c @@ -5192,6 +5192,11 @@ /* 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;