Check return of cam_periph_find() before using it in a printf.
If cam_periph_find() doesn't locate the path we requested, bail to error condition. Acquire ciss->mtx for this operation. Reviewed by: "Benesh, Scott" <scott.benesh@hp.com> MFC after: 2 weeks
This commit is contained in:
parent
0135aadfc3
commit
97ed09b5ff
@ -3429,13 +3429,17 @@ ciss_name_device(struct ciss_softc *sc, int bus, int target)
|
||||
target, 0);
|
||||
|
||||
if (status == CAM_REQ_CMP) {
|
||||
mtx_lock(&sc->ciss_mtx);
|
||||
xpt_path_lock(path);
|
||||
periph = cam_periph_find(path, NULL);
|
||||
sprintf(sc->ciss_logical[bus][target].cl_name, "%s%d",
|
||||
periph->periph_name, periph->unit_number);
|
||||
xpt_path_unlock(path);
|
||||
mtx_unlock(&sc->ciss_mtx);
|
||||
xpt_free_path(path);
|
||||
return(0);
|
||||
if (periph != NULL) {
|
||||
sprintf(sc->ciss_logical[bus][target].cl_name, "%s%d",
|
||||
periph->periph_name, periph->unit_number);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
sc->ciss_logical[bus][target].cl_name[0] = 0;
|
||||
return(ENOENT);
|
||||
|
Loading…
Reference in New Issue
Block a user