⬢ DragonFlyBSD Kernel Audit
DF-3591 / fix.diff
← back to finding ↓ download raw
--- si.c.orig	2026-09-15 05:59:44.826647602 +0000
+++ si.c.fix3591	2026-09-15 06:01:13.033528180 +0000
@@ -1803,6 +1803,7 @@
 			pr_err("si_cp: Bogus length %zu in firmware \"%s\"\n",
 			       rdev->me_fw->datasize, fw_name);
 			err = -EINVAL;
+				goto out;
 		}
 	} else {
 		err = radeon_ucode_validate(rdev->me_fw);
@@ -1826,6 +1827,7 @@
 			pr_err("si_cp: Bogus length %zu in firmware \"%s\"\n",
 			       rdev->ce_fw->datasize, fw_name);
 			err = -EINVAL;
+				goto out;
 		}
 	} else {
 		err = radeon_ucode_validate(rdev->ce_fw);
@@ -1849,6 +1851,7 @@
 			pr_err("si_rlc: Bogus length %zu in firmware \"%s\"\n",
 			       rdev->rlc_fw->datasize, fw_name);
 			err = -EINVAL;
+				goto out;
 		}
 	} else {
 		err = radeon_ucode_validate(rdev->rlc_fw);
@@ -1880,6 +1883,7 @@
 			pr_err("si_mc: Bogus length %zu in firmware \"%s\"\n",
 			       rdev->mc_fw->datasize, fw_name);
 			err = -EINVAL;
+				goto out;
 		}
 		DRM_INFO("%s: %zu bytes\n", fw_name, rdev->mc_fw->datasize);
 	} else {
@@ -1912,6 +1916,7 @@
 			pr_err("si_smc: Bogus length %zu in firmware \"%s\"\n",
 			       rdev->smc_fw->datasize, fw_name);
 			err = -EINVAL;
+				goto out;
 		}
 	} else {
 		err = radeon_ucode_validate(rdev->smc_fw);