DragonFlyBSD Kernel Audit
← dashboard
DF-0172

mpipe_free reads/writes mpipe->pending outside the lwkt_token

Summary

mpipe_free(:355/:358) releases token, then reads/clears mpipe->pending(:363-365) + wakeup. mpipe_alloc_waitok sets pending=1 UNDER token(:324). Inconsistent: pending written under-token by waiter, read/cleared off-token by freer. On x86 TSO no lost-wakeup (retry loop tolerates spurious). Latent portability concern for weak-memory models.