Page MenuHomeFreeBSD

Fix bad libbxo format strings in jls
ClosedPublic

Authored by arichardson on Oct 21 2020, 11:18 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 11, 6:49 PM
Unknown Object (File)
Sun, Nov 9, 2:29 AM
Unknown Object (File)
Sun, Oct 26, 2:19 PM
Unknown Object (File)
Sun, Oct 26, 12:55 AM
Unknown Object (File)
Fri, Oct 24, 7:03 PM
Unknown Object (File)
Fri, Oct 24, 12:02 PM
Unknown Object (File)
Fri, Oct 24, 3:54 AM
Unknown Object (File)
Thu, Oct 23, 11:09 PM
Subscribers

Details

Summary

The existing format string for the empty case was trying to read varargs
values that weren't passed to xo_emit. This appears to work on x86 (since
the next argument is probably a pointer an empty string), but for CHERI
we can bound variadic arguments and detect a read past the end.

While touching these lines also use the libxo a modifier to avoid having to
construct the libxo format string using asprintf.

Found by: CHERI

Test Plan

crashes on CHERI-MIPS before, now prints the expected values (XML and Text)

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 34295
Build 31432: arc lint + arc unit