Commit Graph
3 Commits
Author SHA1 Message Date
BunnyFlandClaude Opus 5.5 5f2e2aa0ed fix(libSceXml): read the getAttribute name through a guarded copy
getAttribute compared each attribute name with the guest name through
std::strcmp on the guest pointer, so a name whose bytes ran up to an
inaccessible page made the host read that page. 13.42 compares with the
module's strcmp (0x80f0, the call at 0x81d1) and faults there.

The name is now read byte by byte through GuestCopyIn_nid_no_patch, only
as far as strcmp reads it, and reaching an unreadable byte throws. The
test places names at the end of a readable page followed by an
inaccessible one.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-05 15:23:53 +01:00
BunnyFlandClaude Opus 5.5 6e3f53cc9c fix(libSceXml): answer empty getAttribute names as 13.42 does and keep the document block owned
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 23:37:38 +01:00
BunnyFlandClaude Opus 5.5 499321b0e2 feat(libSceXml): read 13.42 documents through sce::Xml::Dom::Document
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 21:22:31 +01:00