Repository navigation
Conversation
|
Which title prints |
|
I do not have title traces or Dinkumware _Printf evidence for these wide-format cases. The current evidence is FreeBSD 11.4 behavior and Linux-side tests, so I cannot claim console compatibility for %q, %D/%O/%U, unknown conversions, or a trailing %. I agree this leaves the added behavior unverified against the console; absent title or _Printf evidence, main’s throw is safer. I will avoid presenting these cases as title-required until we have that evidence. |
adriadam10
left a comment
There was a problem hiding this comment.
Thanks for the fix. Blocking points:
- The console's
libc.prxformats through Dinkumware's_Printf, not FreeBSD'svfwprintf. As discussed above, neither a title nor_Printfevidence shows that%q,%D/%O/%U, unknown conversions (with width) or a trailing%behave as FreeBSD 11.4 does there; main's throw is the safe behaviour until then. Evidence that would unblock it: the relevant branches of_Printfdisassembled from a title'slibc.prx(same approach as in #3987), or a title that reaches these cases. - Once evidence exists, the branch conflicts with main in
core/libs/tests/GuestWideFormatting.cpp; it needs a rebase.
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Thanks for the firmware 12.70 payload report. The current PR head already follows the measured literal handling for the reported non-secure wide |
ca0fc05 to
f52d991
Compare
|
Rebased the six existing commits onto current upstream |
|
Final hosted check update for head |
f52d991 to
f36936b
Compare
|
I compared the previously tested head |
…t in the wide printf family The wide printf family rejected the q length modifier, the D, O and U conversions, unknown conversion characters and a format ending in a percent sign, which FreeBSD 11.4 vfwprintf formats: q is long long, D, O and U are the long forms of d, o and u, an unknown conversion character prints itself with the width and the - flag, and the format ends at a trailing percent sign. swprintf, vswprintf and wprintf now do the same; snwprintf_s keeps rejecting them.
…te pair whole as an unknown conversion snwprintf_s accepted the q length modifier through the shared parser and now rejects it again. An unknown conversion character that is a surrogate pair is printed as one character, so the width padding no longer splits the pair.
…he rebase re-added Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
f36936b to
6d5d378
Compare
What
Updates non-secure guest wide
printfformatting to match the measured literal-text behavior for%q,%D/%O/%U, unknown conversions, and width handling observed fromlibSceLibcInternal.sprxon firmware 12.70. The probe calledswprintffrom a payload process; it did not exercise a title or its bundledlibc.prx, whose Dinkumware_Printfbehavior remains unverified. The probe also showed that a trailing%read past the format terminator, so incomplete conversions continue to fail safely. The securesnwprintf_spath continues to reject these forms because its console behavior was not measured.The original implementation commits retain Hussein Kadhim as author, and the original test commits retain MarcZX100. The review follow-up is authored by MarcZX10.
Tested
mainat661f8b71718083fbac1c45b44f5d67dc39cb4624, preserving their original authorship. The debt-file conflict was resolved by retaining unrelated current-main entries and the PR's measured-versus-extrapolated distinction.python3 tools/check_conventions.py --base upstream/main --head HEADandgit diff --check upstream/main...HEADpass.06bd246798builtguest_wide_formatting_testsand passedctest -R guest_wide_formatting --output-on-failure(1/1). That runtime test was not rerun after the current-main rebase.libc.prxruntime test, Windows build or full test suite was run.Checklist
main; no other open PR implements the same wide-format functions.mdfiles or images added to the repository