⬢ DragonFlyBSD Kernel Audit
DF-5748 / fix_run.log
← back to finding ↓ download raw
### fix-validation ssh stdout ###
Patching file rfcomm_dlc.c using Plan A...
Hunk #1 succeeded at 200.
done
cc -Wl,--build-id=sha1 -nostdlib -Wl,--hash-style=sysv   -r -Wl,-d -o rfcomm_up5748.ko harness5748.o l2cap_stub.o rfcomm_session.o rfcomm_dlc.o rfcomm_upper.o
0
hw.df5748_fire: 0 -> 0
[harness] <- UIH(0) MSC response (8 bytes): 03 ef 09 e1 05 23 8d 70
[DF-5748] dlc A state=6 (6=OPEN), dlc B state=6 (6=OPEN)
[l2cap-stub] send: 4 bytes (first octet 0x1b)
[DF-5748] disconnect(A) -> 0; state=7 (7=WAIT_DISCONNECT)
[l2cap-stub] send: 4 bytes (first octet 0x23)
[DF-5748] disconnect(B) -> 0; state=7
[DF-5748] A timer: pending=1 active=1   (ARMED by rfcomm_disconnect:252)
[upper] disconnected (0)
[DF-5748] A after rfcomm_dlc_close(): pending=0 active=0
[DF-5748] DEAD: callout_active() == 0 after rfcomm_dlc_close(); the RFCOMM_DLC_DETACH branch at rfcomm_upper.c:293 is UNREACHABLE
[upper] disconnected (0)
[DF-5748] rfcomm_detach(B) returned; B freed via immediate kfree (DETACH flag never taken)
[DF-5748] session left empty -> 20 s expiry callout will rfcomm_session_free() it; sleep to let it fire cleanly
=== DF-5748 harness done (no crash) ===

### dmesg — PATCHED code (fix.diff applied, clean rebuild), same trigger ###
=== DF-5748 harness: dead callout_active()/RFCOMM_DLC_DETACH guard ===
[harness] == L2CAP connected ==
[l2cap-stub] send: 4 bytes (first octet 0x3)
[harness] <- UA(0) [session up] (4 bytes): 03 73 01 d7
[l2cap-stub] send: 11 bytes (first octet 0x3)
[l2cap-stub] send: 11 bytes (first octet 0x3)
[harness] <- UIH(0) PN response (valid mtu) (14 bytes): 03 ef 15 81 11 06 e0 00 00 7f 00 00 00 70
[l2cap-stub] send: 4 bytes (first octet 0x1b)
[harness] <- UA(dlci) [dlc up] (4 bytes): 1b 73 01 18
[l2cap-stub] send: 6 bytes (first octet 0x3)
[upper] connected
[harness] <- UIH(0) MSC response (8 bytes): 03 ef 09 e1 05 1b 8d 70
[harness] <- UIH(0) PN response (valid mtu) (14 bytes): 03 ef 15 81 11 08 e0 00 00 7f 00 00 00 70
[l2cap-stub] send: 4 bytes (first octet 0x23)
[harness] <- UA(dlci) [dlc up] (4 bytes): 23 73 01 02
[l2cap-stub] send: 6 bytes (first octet 0x3)
[upper] connected
[harness] <- UIH(0) MSC response (8 bytes): 03 ef 09 e1 05 23 8d 70
[DF-5748] dlc A state=6 (6=OPEN), dlc B state=6 (6=OPEN)
[l2cap-stub] send: 4 bytes (first octet 0x1b)
[DF-5748] disconnect(A) -> 0; state=7 (7=WAIT_DISCONNECT)
[l2cap-stub] send: 4 bytes (first octet 0x23)
[DF-5748] disconnect(B) -> 0; state=7
[DF-5748] A timer: pending=1 active=1   (ARMED by rfcomm_disconnect:252)
[upper] disconnected (0)
[DF-5748] A after rfcomm_dlc_close(): pending=0 active=0
[DF-5748] DEAD: callout_active() == 0 after rfcomm_dlc_close(); the RFCOMM_DLC_DETACH branch at rfcomm_upper.c:293 is UNREACHABLE
[upper] disconnected (0)
[DF-5748] rfcomm_detach(B) returned; B freed via immediate kfree (DETACH flag never taken)
[DF-5748] session left empty -> 20 s expiry callout will rfcomm_session_free() it; sleep to let it fire cleanly
=== DF-5748 harness done (no crash) ===