summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2002-05-26 17:17:25 +0000
committerphk <phk@FreeBSD.org>2002-05-26 17:17:25 +0000
commit8bb89b7b0cc9111bd5a11d563b0737e0513fce37 (patch)
tree0f8accac1be92e29545dd0b81152b921cc6bcf05
parent0b1a4f9b104ea8398550e244352de63aa205d8e7 (diff)
downloadFreeBSD-src-8bb89b7b0cc9111bd5a11d563b0737e0513fce37.zip
FreeBSD-src-8bb89b7b0cc9111bd5a11d563b0737e0513fce37.tar.gz
Only clear the spoiled flag if the class had no spoiled method, the spoiled
method may have deallocated the consumer already and modifying free()'ed memory is bad style. Sponsored by: DARPA & NAI Labs.
-rw-r--r--sys/geom/geom_event.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/geom/geom_event.c b/sys/geom/geom_event.c
index b88622a..4322e15 100644
--- a/sys/geom/geom_event.c
+++ b/sys/geom/geom_event.c
@@ -191,7 +191,8 @@ g_do_event(struct g_event *ep)
cp, cp->geom->name, cp->geom->spoiled);
if (cp->geom->spoiled != NULL)
cp->geom->spoiled(cp);
- cp->spoiled = 0;
+ else
+ cp->spoiled = 0;
}
cp = cp2;
}
OpenPOWER on IntegriCloud