btrace(8): fix out of bounds read using argN in BEGIN/END.
authordv <dv@openbsd.org>
Tue, 15 Aug 2023 20:51:45 +0000 (20:51 +0000)
committerdv <dv@openbsd.org>
Tue, 15 Aug 2023 20:51:45 +0000 (20:51 +0000)
commit5a94035a22abb041be62cf797397516ea66ef1ab
tree56765778b66efeb8accdad56b2565860e2864a52
parent45ae274f3da4eedddbe59146c8e01785831fb0b8
btrace(8): fix out of bounds read using argN in BEGIN/END.

The argN builtins aren't valid in BEGIN or END actions. The fake
probe number btrace uses to facilitate other valid builtins caused
an out of bound read of an array, producing a segfault.

Change the fake probe number to 0 as it's an unsigned int and check
for that condition.

Adds asserts near other probe array indexing to catch future issues.

ok kn@
usr.sbin/btrace/btrace.c