DragonFlyBSD Kernel Audit
DF-0018 / fix_build.log
← back to finding ↓ download raw
## fix-build log -- single-fix kernel build after applying fix.diff
## guest: DragonFly 6.5-DEVELOPMENT #0 baseline -> patched to #1
## command:  cd /usr/src && patch -p1 < /root/fix.diff && make -j6 nativekernel KERNCONF=X86_64_GENERIC

## patch apply:
$ cd /usr/src && patch -p1 --forward --batch < /root/fix.diff
Patching file sys/kern/kern_dmsg.c using Plan A...
Hunk #1 succeeded at 952.
done
APPLY=0

## patched code at sys/kern/kern_dmsg.c:952-971 (verified):
                if ((state->rxcmd & DMSGF_CREATE) == 0) {
                        ...
                        break;
                }

                /*
                 * A duplicate DELETE can race our reply transmission (the
                 * writer has not yet transmitted our REPLY|DELETE, so the
                 * state is still in staterd_tree with rxcmd already carrying
                 * DMSGF_DELETE).  Discard it benignly instead of tripping the
                 * KKASSERT below (kern_dmsg.c:1076).
                 */
                if (state->rxcmd & DMSGF_DELETE) {
                        kdio_printf(iocom, 1, "%s\n",
                                    "msgrx: duplicate DELETE");
                        error = EALREADY;
                        break;
                }
                error = 0;
                break;

## build (warm obj, .c-only change):
$ make -j6 nativekernel KERNCONF=X86_64_GENERIC
... (full nativekernel rebuild, .c-only diff touched 1 file but make rebuilds
     dependents; ~6-7 min) ...
=== NK2_DONE rc=0 ===
Sun Jul 12 14:20:05 UTC 2026

## install:
$ make installkernel KERNCONF=X86_64_GENERIC
>>> Kernel install for X86_64_GENERIC completed on Sun Jul 12 14:21:28 UTC 2026
$ sha256 /boot/kernel/kernel
SHA256 (/boot/kernel/kernel) = f25163731649235e8032546312974e93ef8fa3eab1b25031749ad511b4e30d29

## rebooted into patched kernel:
$ sysctl -n kern.version | head -1
DragonFly 6.5-DEVELOPMENT #1: Sun Jul 12 14:16:09 UTC 2026