| Age | Commit message (Collapse) | Author |
|
Reported by MrSynAckster.
|
|
This use-after-move error inhibits the use of savestates during the Dolphin TAS Movie creation process.
|
|
NetPlayClient: Check for invalid pad indices
|
|
|
|
Like 29e577d but for the client instead of the server.
|
|
doldol22312/netplay-validate-controller-packet-indices
NetPlayServer: Fix remote crash via invalid pad index
|
|
|
|
Found out when attempting to make a speed hack to help Dolphin detect an idle loop. The inserted `nop` was preventing it from considering it an idle loop.
|
|
We were also passing the wrong partition name.
|
|
A few actions were missing from shortcuts in the Tools menu. This allows using e.g. `ALT`+(`T`>`E`>`S`) to open the Skylanders Manager, or `ALT`+(`C`>`C`>`1`) to toggle the first Wii Remote's connection.
|
|
|
|
|
|
This makes us savestate the NAND using the same APIs the guest uses
instead of directly touching the host files. This solves several
problems:
* If the user loaded a malicious savestate, it could use path traversal
to overwrite arbitrary files on the host file system. (Reported by
MrSynAckster.)
* Metadata (UID, GID, attribute, modes) wasn't being savestated.
* NAND redirects weren't handled, except for NAND redirects at the root
of where the savestate was being done. (This only possibly matters if
TASing a Riivolution patch. The root of the savestate is at /tmp when
not TASing, and the only case where we do a NAND redirect is inside
/title if requested by a Riivolution patch.)
|
|
Also do a little cleanup in the equivalent part of Jit64.
|
|
|
|
|
|
Prevent path traversal in NANDImporter::ProcessEntry
|
|
The conditions were in reverse order (maybe someone was reading the
PowerPC manual and forgot about IBM's bit numbering), and additionally
the two conditions for unsigned comparison were wrong.
Fixes https://bugs.dolphin-emu.org/issues/14054.
|
|
Reported by MrSynAckster. A specifically crafted NAND dump could use
path traversal to overwrite files on the host file system.
This is also an accuracy fix for importing NAND dumps that contain
file names that Dolphin is supposed to escape. Some games' save files
are affected.
|
|
GetPath has two special cases where it doesn't add a slash.
The first is for the root entry's special name "/". The next commit will
be neater if we can skip calling GetPath for the root entry, because '/'
is one of the characters that Common::EscapeFileName replaces with an
escape sequence. Let's check for entry number 0 instead.
The second is for parent paths that already end in a slash. There's no
actual need to check for this - double slashes are harmless, and for
comparison, NANDImporter::ExtractCertificates already appends slashes
without checking if there already is one. Let's remove this check.
|
|
If CopyFromEmuSwapped considers the address to be invalid, nothing will
be written to the passed-in pointer.
|
|
Simonx22/android/convert-directoryinitialization-to-kotlin
Android: Convert DirectoryInitialization to Kotlin
|
|
VideoCommon: Added option for showcasing internal resolution
|
|
|
|
|
|
|
|
Add screen crop feature
|
|
|
|
|
|
NetplayScreen was not drawing under the bottom nav bar like other screens. In landscape mode half of the screen scrolls and half is fixed, to make this look natural with edge to edge, provide a fade on the bottom of the scrolling side so things look natural when the screens loads and is resting at 0 scroll offset.
|
|
|
|
To avoid using dual pane layout on very small devices, ensure that the current width available for display is at least medium (600dp).
It also has to be landscape, the dual pane mode looks weird on a tablet in portrait mode since there's not that much content.
|
|
Handles the repeated boiler plate of using a weak reference to NetplaySession from NetplayUICallbacks
|
|
Remove corresponding jni config.
Rename Netplay to NetplaySession in jni config to match new kotlin name.
|
|
|
|
Since it's only instantiated from c++.
|
|
|
|
Was using 2025 instead of 2026! Fixed some buggy bottom sheet behaviour.
Minor tidying of the chat UI in the bottom sheet
|
|
|
|
|
|
Also rename max buffer to client buffer for better consistency with settings and c++
|
|
Traversal connections show in the joining info UI.
Non fatal errors show the retry button.
Fatal errors end the netplay session.
|
|
Doesn't support traversal yet
|
|
De-duplicates the two inline implementations and prepares it for use from Android.
|
|
Also fix bottom sheets so they survive rotation
|
|
A player's own messages don't come back via the server.
|
|
|
|
|
|
|
|
We just about get away with using a StateFlow in NetplaySession since the host sends AbortGameDigest when closing their own dialog. Without that it would be harder for the UI to distinguish between subsequent dialogs. If that wasn't the case then NetplaySession might need to expose the individual progress and result updates and have the view model assemble it into the overall GameDigestProgress.
|