From 5f438dd3acba47e54e63b13bfff31a49bcc6ddea Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Fri, 10 Jun 2022 16:44:59 -0600 Subject: [PATCH] ses: don't panic if disk elements have really weird descriptors SES allows element descriptors to contain characters like spaces and quotes that devfs does not allow to appear in device aliases. Since SES element descriptors are outside of the kernel's control, we should gracefully handle a failure to create a device physical path alias. PR: 264513 Reported by: Yuri Reviewed by: imp, mav Sponsored by: Axcient MFC after: 2 weeks --- sys/cam/scsi/scsi_pass.c | 5 +++-- sys/geom/geom_dev.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sys/cam/scsi/scsi_pass.c b/sys/cam/scsi/scsi_pass.c index e74e19acc40..7f66ca458bd 100644 --- a/sys/cam/scsi/scsi_pass.c +++ b/sys/cam/scsi/scsi_pass.c @@ -457,8 +457,9 @@ pass_add_physpath(void *context, int pending) "GEOM::physpath", periph->path) == 0 && strlen(physpath) != 0) { mtx_unlock(mtx); - make_dev_physpath_alias(MAKEDEV_WAITOK, &softc->alias_dev, - softc->dev, softc->alias_dev, physpath); + make_dev_physpath_alias(MAKEDEV_WAITOK | MAKEDEV_CHECKNAME, + &softc->alias_dev, softc->dev, + softc->alias_dev, physpath); mtx_lock(mtx); } diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c index ad382b357f2..a9a1c927449 100644 --- a/sys/geom/geom_dev.c +++ b/sys/geom/geom_dev.c @@ -273,8 +273,8 @@ g_dev_set_physpath(struct g_consumer *cp) dev = sc->sc_dev; old_alias_dev = sc->sc_alias; alias_devp = (struct cdev **)&sc->sc_alias; - make_dev_physpath_alias(MAKEDEV_WAITOK, alias_devp, dev, - old_alias_dev, physpath); + make_dev_physpath_alias(MAKEDEV_WAITOK | MAKEDEV_CHECKNAME, + alias_devp, dev, old_alias_dev, physpath); } else if (sc->sc_alias) { destroy_dev((struct cdev *)sc->sc_alias); sc->sc_alias = NULL;