diff --git a/sys/dev/raid/mpr/mpr_sas.c b/sys/dev/raid/mpr/mpr_sas.c index 1111111..2222222 100644 --- a/sys/dev/raid/mpr/mpr_sas.c +++ b/sys/dev/raid/mpr/mpr_sas.c @@ -3684,8 +3684,11 @@ mprsas_check_eedp(struct mpr_softc *sc, struct cam_path *path, rcap_buf = kmalloc(sizeof(struct scsi_read_capacity_eedp), M_MPR, M_NOWAIT | M_ZERO); if (rcap_buf == NULL) { mpr_dprint(sc, MPR_ERROR, "Unable to alloc read capacity " "buffer for EEDP support.\n"); - xpt_free_path(ccb->ccb_h.path); + /* DF-3804: ccb->ccb_h.path was never assigned (NULL); + * the path we created is local_path. */ + xpt_free_path(local_path); xpt_free_ccb(&ccb->ccb_h); return; }