Index: geom_slice.c =================================================================== RCS file: /private/FreeBSD/src/sys/geom/geom_slice.c,v retrieving revision 1.51 diff -u -p -r1.51 geom_slice.c --- geom_slice.c 12 Feb 2004 22:42:11 -0000 1.51 +++ geom_slice.c 24 Jun 2004 09:28:59 -0000 @@ -62,7 +62,10 @@ g_slice_alloc(unsigned nslice, unsigned struct g_slicer *gsp; gsp = g_malloc(sizeof *gsp, M_WAITOK | M_ZERO); - gsp->softc = g_malloc(scsize, M_WAITOK | M_ZERO); + if (scsize > 0) + gsp->softc = g_malloc(scsize, M_WAITOK | M_ZERO); + else + gsp->softc = NULL; gsp->slices = g_malloc(nslice * sizeof(struct g_slice), M_WAITOK | M_ZERO); gsp->nslice = nslice; @@ -468,7 +471,8 @@ g_slice_new(struct g_class *mp, u_int sl g_wither_geom(gp, ENXIO); return (NULL); } - *vp = gsp->softc; + if (extrap != NULL) + *vp = gsp->softc; *cpp = cp; return (gp); }