Fix OpenSSL NULL pointer deference vulnerability. [SA-14:09] Add pkg bootstrapping, configuration and public keys. [EN-14:03] Improve build repeatability for kldxref(8). [EN-14:04] Fix data corruption with ciss(4). [EN-14:05]
65 lines
2 KiB
Diff
65 lines
2 KiB
Diff
Index: sys/dev/ciss/ciss.c
|
|
===================================================================
|
|
--- sys/dev/ciss/ciss.c (revision 264510)
|
|
+++ sys/dev/ciss/ciss.c (revision 264511)
|
|
@@ -180,8 +180,6 @@
|
|
static void ciss_cam_poll(struct cam_sim *sim);
|
|
static void ciss_cam_complete(struct ciss_request *cr);
|
|
static void ciss_cam_complete_fixup(struct ciss_softc *sc, struct ccb_scsiio *csio);
|
|
-static struct cam_periph *ciss_find_periph(struct ciss_softc *sc,
|
|
- int bus, int target);
|
|
static int ciss_name_device(struct ciss_softc *sc, int bus, int target);
|
|
|
|
/* periodic status monitoring */
|
|
@@ -3398,27 +3396,6 @@
|
|
|
|
|
|
/********************************************************************************
|
|
- * Find a peripheral attached at (target)
|
|
- */
|
|
-static struct cam_periph *
|
|
-ciss_find_periph(struct ciss_softc *sc, int bus, int target)
|
|
-{
|
|
- struct cam_periph *periph;
|
|
- struct cam_path *path;
|
|
- int status;
|
|
-
|
|
- status = xpt_create_path(&path, NULL, cam_sim_path(sc->ciss_cam_sim[bus]),
|
|
- target, 0);
|
|
- if (status == CAM_REQ_CMP) {
|
|
- periph = cam_periph_find(path, NULL);
|
|
- xpt_free_path(path);
|
|
- } else {
|
|
- periph = NULL;
|
|
- }
|
|
- return(periph);
|
|
-}
|
|
-
|
|
-/********************************************************************************
|
|
* Name the device at (target)
|
|
*
|
|
* XXX is this strictly correct?
|
|
@@ -3427,12 +3404,22 @@
|
|
ciss_name_device(struct ciss_softc *sc, int bus, int target)
|
|
{
|
|
struct cam_periph *periph;
|
|
+ struct cam_path *path;
|
|
+ int status;
|
|
|
|
if (CISS_IS_PHYSICAL(bus))
|
|
return (0);
|
|
- if ((periph = ciss_find_periph(sc, bus, target)) != NULL) {
|
|
+
|
|
+ status = xpt_create_path(&path, NULL, cam_sim_path(sc->ciss_cam_sim[bus]),
|
|
+ target, 0);
|
|
+
|
|
+ if (status == CAM_REQ_CMP) {
|
|
+ mtx_lock(&sc->ciss_mtx);
|
|
+ periph = cam_periph_find(path, NULL);
|
|
sprintf(sc->ciss_logical[bus][target].cl_name, "%s%d",
|
|
periph->periph_name, periph->unit_number);
|
|
+ mtx_unlock(&sc->ciss_mtx);
|
|
+ xpt_free_path(path);
|
|
return(0);
|
|
}
|
|
sc->ciss_logical[bus][target].cl_name[0] = 0;
|