diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-08-22 10:22:46 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-08-22 10:22:46 +0000 |
commit | 92b5e86ebfaf8754806df71f34bc0fa9956fa014 (patch) | |
tree | c8f8aca3753518a9df405adf1da301720ea17c60 /sys/geom/geom_ccd.c | |
parent | 572e53c2acff88a969f3bcfd8d4773a52a8e9d44 (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.c | 4 |
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); |