aboutsummaryrefslogtreecommitdiff
path: root/sys/geom/geom_ccd.c
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2003-08-22 10:22:46 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2003-08-22 10:22:46 +0000
commit92b5e86ebfaf8754806df71f34bc0fa9956fa014 (patch)
treec8f8aca3753518a9df405adf1da301720ea17c60 /sys/geom/geom_ccd.c
parent572e53c2acff88a969f3bcfd8d4773a52a8e9d44 (diff)
Check for null softc pointers, these happens when a ccd is withering.
Found by: David Schultz <dschultz@OCF.Berkeley.EDU>
Notes
Notes: svn path=/head/; revision=119295
Diffstat (limited to 'sys/geom/geom_ccd.c')
-rw-r--r--sys/geom/geom_ccd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/geom/geom_ccd.c b/sys/geom/geom_ccd.c
index ff951d55800d..c2f309ab0757 100644
--- a/sys/geom/geom_ccd.c
+++ b/sys/geom/geom_ccd.c
@@ -688,7 +688,7 @@ g_ccd_create(struct gctl_req *req, struct g_class *mp)
/* Check for duplicate unit */
LIST_FOREACH(gp, &mp->geom, geom) {
sc = gp->softc;
- if (sc->sc_unit == *unit) {
+ if (sc != NULL && sc->sc_unit == *unit) {
gctl_error(req, "Unit %d already configured", *unit);
return;
}
@@ -817,7 +817,7 @@ g_ccd_list(struct gctl_req *req, struct g_class *mp)
sbuf_clear(sb);
LIST_FOREACH(gp, &mp->geom, geom) {
cs = gp->softc;
- if (unit >= 0 && unit != cs->sc_unit)
+ if (cs == NULL || (unit >= 0 && unit != cs->sc_unit))
continue;
sbuf_printf(sb, "ccd%d\t\t%d\t%d\t",
cs->sc_unit, cs->sc_ileave, cs->sc_flags & CCDF_USERMASK);