diff options
author | avg <avg@FreeBSD.org> | 2010-05-31 09:10:39 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2010-05-31 09:10:39 +0000 |
commit | 4abc4c484d1147acd24fc4d5a3e9cc56c8051a4a (patch) | |
tree | d6a53ef107be8960d5254b15cc4472de1c686aaa /sys/geom | |
parent | 8557da2a5752d74e202acdb26a40175c14303019 (diff) | |
download | FreeBSD-src-4abc4c484d1147acd24fc4d5a3e9cc56c8051a4a.zip FreeBSD-src-4abc4c484d1147acd24fc4d5a3e9cc56c8051a4a.tar.gz |
g_label: fix possible NULL pointer dereference
in case glabel debug level is >= 1 and gp->provider list is empty
for some reason
Found by: clang static analyzer
MFC after: 4 days
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/label/g_label.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/geom/label/g_label.c b/sys/geom/label/g_label.c index 48329aa..73054fa 100644 --- a/sys/geom/label/g_label.c +++ b/sys/geom/label/g_label.c @@ -203,10 +203,8 @@ g_label_destroy(struct g_geom *gp, boolean_t force) pp->acr, pp->acw, pp->ace); return (EBUSY); } - } else { - G_LABEL_DEBUG(1, "Label %s removed.", - LIST_FIRST(&gp->provider)->name); - } + } else if (pp != NULL) + G_LABEL_DEBUG(1, "Label %s removed.", pp->name); g_slice_spoiled(LIST_FIRST(&gp->consumer)); return (0); } |