diff options
-rw-r--r-- | sys/dev/fdc/fdc.c | 4 | ||||
-rw-r--r-- | sys/isa/fd.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index d67d902..fdd2ca4 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -985,8 +985,10 @@ fdc_add_child(device_t dev, const char *name, int unit) if (resource_int_value(name, unit, "drive", &ivar->fdunit) != 0) ivar->fdunit = 0; child = device_add_child(dev, name, unit); - if (child == NULL) + if (child == NULL) { + free(ivar, M_DEVBUF); return; + } device_set_ivars(child, ivar); if (resource_int_value(name, unit, "flags", &flags) == 0) device_set_flags(child, flags); diff --git a/sys/isa/fd.c b/sys/isa/fd.c index d67d902..fdd2ca4 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -985,8 +985,10 @@ fdc_add_child(device_t dev, const char *name, int unit) if (resource_int_value(name, unit, "drive", &ivar->fdunit) != 0) ivar->fdunit = 0; child = device_add_child(dev, name, unit); - if (child == NULL) + if (child == NULL) { + free(ivar, M_DEVBUF); return; + } device_set_ivars(child, ivar); if (resource_int_value(name, unit, "flags", &flags) == 0) device_set_flags(child, flags); |