summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2005-03-27 03:37:43 +0000
committernjl <njl@FreeBSD.org>2005-03-27 03:37:43 +0000
commit71e4d20ab99f06dce4a8002f552f8700c5ec48ac (patch)
tree889fd3eeaa020339b3442332b82e3a6041ec7b6f /sys/dev/acpica
parent9b9e1d2727975d72f9ec1a7f048cf43153aebea8 (diff)
downloadFreeBSD-src-71e4d20ab99f06dce4a8002f552f8700c5ec48ac.zip
FreeBSD-src-71e4d20ab99f06dce4a8002f552f8700c5ec48ac.tar.gz
If a device_add_child fails (i.e. low memory situation), be sure to free
the unused ivars also. Submitted by: pjd Obtained from: Coverity Prevent analysis
Diffstat (limited to 'sys/dev/acpica')
-rw-r--r--sys/dev/acpica/acpi.c2
-rw-r--r--sys/dev/acpica/acpi_cpu.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index bd323b1..b2cf564 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -704,6 +704,8 @@ acpi_add_child(device_t bus, int order, const char *name, int unit)
child = device_add_child_ordered(bus, order, name, unit);
if (child != NULL)
device_set_ivars(child, ad);
+ else
+ free(ad, M_ACPIDEV);
return (child);
}
diff --git a/sys/dev/acpica/acpi_cpu.c b/sys/dev/acpica/acpi_cpu.c
index 30ba2e9..844111b 100644
--- a/sys/dev/acpica/acpi_cpu.c
+++ b/sys/dev/acpica/acpi_cpu.c
@@ -392,6 +392,8 @@ acpi_cpu_add_child(device_t dev, int order, const char *name, int unit)
child = device_add_child_ordered(dev, order, name, unit);
if (child != NULL)
device_set_ivars(child, ad);
+ else
+ free(ad, M_TEMP);
return (child);
}
OpenPOWER on IntegriCloud