diff options
Diffstat (limited to 'sys/kern/kern_osd.c')
-rw-r--r-- | sys/kern/kern_osd.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/kern_osd.c b/sys/kern/kern_osd.c index 0aed19d..1cb83e4 100644 --- a/sys/kern/kern_osd.c +++ b/sys/kern/kern_osd.c @@ -297,8 +297,10 @@ do_osd_del(u_int type, struct osd *osd, u_int slot, int list_locked) OSD_DEBUG("Slot doesn't exist (type=%u, slot=%u).", type, slot); return; } - osd_destructors[type][slot - 1](osd->osd_slots[slot - 1]); - osd->osd_slots[slot - 1] = NULL; + if (osd->osd_slots[slot - 1] != NULL) { + osd_destructors[type][slot - 1](osd->osd_slots[slot - 1]); + osd->osd_slots[slot - 1] = NULL; + } for (i = osd->osd_nslots - 1; i >= 0; i--) { if (osd->osd_slots[i] != NULL) { OSD_DEBUG("Slot still has a value (type=%u, slot=%u).", |