diff options
author | phk <phk@FreeBSD.org> | 2002-05-26 17:17:25 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2002-05-26 17:17:25 +0000 |
commit | 8bb89b7b0cc9111bd5a11d563b0737e0513fce37 (patch) | |
tree | 0f8accac1be92e29545dd0b81152b921cc6bcf05 /sys/geom/geom_event.c | |
parent | 0b1a4f9b104ea8398550e244352de63aa205d8e7 (diff) | |
download | FreeBSD-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.
Diffstat (limited to 'sys/geom/geom_event.c')
-rw-r--r-- | sys/geom/geom_event.c | 3 |
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; } |