DragonFlyBSD Kernel Audit
DF-0785 / fix_build.log
← back to finding ↓ download raw
DF-0785 single-fix module build (ntfs.ko with kmalloc(max(blsize,rdsize)))
==========================================================================
Base: with-src snapshot (6.5-DEVELOPMENT #0).  Fix applied to /usr/src:
  cd /usr/src && patch -p1 --forward < fix.diff
  -> sys/vfs/ntfs/ntfs_subr.c:888: rdbuf = kmalloc(max(blsize, rdsize), M_TEMP, M_WAITOK);

Build (fast module rebuild, cc 8.3, -Werror):
  cd /usr/src/sys/vfs/ntfs && make
  -> /usr/obj/usr/src/sys/vfs/ntfs/ntfs.ko (56456 bytes), rc=0, 0 errors

Loaded module disassembly confirms the fix is present (the max() materialises as
a conditional move selecting the larger of blsize/rdsize for the kmalloc size):
  4b6b: cmp    %r14d,%eax
  4b71: cmovae %rax,%rdi        <- kmalloc size = max(blsize, rdsize)

Hot-swap (standard fix-validation method):
  kldunload ntfs; cp ntfs.ko /boot/modules/ntfs.ko; kldload ntfs
  kldstat: 5 1 0xffffffff82600000 8f000 ntfs.ko
  sha256(loaded /boot/modules/ntfs.ko) = 2138ff8cb9878eab5e548228ca172e0eb422f3e0c5b0fb53d9aa61a1b955a512