⬢ DragonFlyBSD Kernel Audit
DF-5102 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/apple/fw/apple_fw.c
+++ b/sys/dev/apple/fw/apple_fw.c
@@ -109,9 +109,12 @@ apple_fw_probe(device_t dev)
 	product = kgetenv("smbios.system.product");
 	biosver = kgetenv("smbios.bios.version");
 	ksnprintf(desc, sizeof(desc), "Apple %s EFI Firmware %s",
 	    product, biosver);
 	device_set_desc_copy(dev, desc);
-	kfreeenv(product);
-	kfreeenv(biosver);
+	/* kgetenv() returns NULL when the entry is absent; kfree(NULL) panics. */
+	if (product != NULL)
+		kfreeenv(product);
+	if (biosver != NULL)
+		kfreeenv(biosver);
 
 	return (0);
 }