DragonFlyBSD Kernel Audit
DF-0151 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/subr_module.c b/sys/kern/subr_module.c
--- a/sys/kern/subr_module.c
+++ b/sys/kern/subr_module.c
@@ -371,7 +371,8 @@
 	sbuf_printf(sbp, "%s", (char *)bptr);
 	break;
     case MODINFO_SIZE:
-	sbuf_printf(sbp, "%lu", *(u_long *)bptr);
+	if (len >= (int)sizeof(u_long))
+	    sbuf_printf(sbp, "%lu", *(u_long *)bptr);
 	break;
     case MODINFO_ADDR:
     case MODINFO_METADATA | MODINFOMD_SSYM:
@@ -381,7 +382,8 @@
     case MODINFO_METADATA | MODINFOMD_ENVP:
     case MODINFO_METADATA | MODINFOMD_SMAP:
     case MODINFO_METADATA | MODINFOMD_EFI_FB:
-	sbuf_printf(sbp, "0x%016lx", *(vm_offset_t *)bptr);
+	if (len >= (int)sizeof(vm_offset_t))
+	    sbuf_printf(sbp, "0x%016lx", *(vm_offset_t *)bptr);
 	break;
     case MODINFO_METADATA | MODINFOMD_HOWTO:
 	sbuf_printf(sbp, "0x%08x", *bptr);