Page MenuHomeFreeBSD

libdtrace: Fix an off-by-one in the priority queue implementation
ClosedPublic

Authored by markj on Mar 5 2025, 10:59 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 25, 10:02 PM
Unknown Object (File)
Tue, Nov 11, 7:55 PM
Unknown Object (File)
Oct 26 2025, 9:58 PM
Unknown Object (File)
Oct 14 2025, 12:07 PM
Unknown Object (File)
Oct 13 2025, 7:52 AM
Unknown Object (File)
Oct 7 2025, 10:58 AM
Unknown Object (File)
Oct 5 2025, 2:57 AM
Unknown Object (File)
Oct 4 2025, 7:47 PM
Subscribers

Details

Summary

The zero'th index in the array is unused, so a priority queue of N elements
needs N+1 array slots. Fix the allocation.

Also fix the assertion in dt_pq_insert(): the assertion needs to be checked
after incrementing the count of items in the priority queue, otherwise it can
miss an overflow.

Reported by: CHERI
Sponsored by: Innovate UK

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable