Firmware 13.42 libSceNpCommon.sprx zeroes the 8-byte buffer without a null check before it writes major.minor, as read from its disassembly in #13684. The test now expects the zero padding, and the debt entry names that source.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
A waiter thread holds a pointer to wakeWaiters' stack-local state. Returning
after a failed second creation left the first thread waiting on an object
that went out of scope, and later cases could reuse that storage. Abort the
test process on a failed creation or signal instead, so no worker outlives
the state it uses.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The NP condition wrappers were only tested without a waiter, and
sceNpCondWait, the SignalAll and SignalTo forms and every sceNpLwCond call
had no test. A new wake case parks real threads in sceNpCondWait and
sceNpLwCondWait and releases them with Signal, SignalAll and SignalTo,
then destroys the conditions. The runtime event flag test now masks bits
with sceNpClearEventFlag and sets a pattern with sceNpCancelEventFlag,
which reports no waiters.
Co-Authored-By: Claude Opus 5.5 <[email protected]>