Commit Graph
38934 Commits
Author SHA1 Message Date
JosJuice a9c36ee2ef Merge pull request #14735 from tom-pratt/dual-core-warning
Android: Dual core warning when hosting netplay
2026-08-16 11:05:39 +02:00
Dr. Dystopia f65180fa91 DSP: Fix Off-by-one clamping error 2026-08-13 08:41:37 +02:00
OatmealDome 4ff214cdd2 Merge pull request #14808 from phire/ZeldaHLE_overflow
Fix stack overflow in ZeldaHLE
2026-08-10 21:45:52 -04:00
Scott Mansell 53cd8ffa3f Fix stack overflow in ZeldaHLE
Independently spotted by both @Dentomologist and me while reviewing
PR #14805
The previous limit was correct for valid VPBs, but an invalid VPB
controlled by a malicious game could contain a non-fractional value
in current_pos_frac, which would allow writing an extra 15 samples
(30 bytes) into the stack. With AFC encoding, this is rounded up to 16
samples, but with much less control over which bytes are written.

Maybe we should be doing some validation, or bounds checking, but I'm
pretty sure this issue was copied from the original ucode, and we kinda
want to stay compatible.

The simpler fix is to just increase the size of raw_input_samples.
I've checked other code paths, and 0x514 samples seems to be the limit.
2026-08-11 12:30:54 +12:00
Tillmann Karras ce85da6b96 DSPHLE/Zelda: prevent out-of-bounds stack read
Reported by @RickdeJager.
2026-08-09 15:56:21 +01:00
Scott Mansell 216ffb4581 Merge pull request #14803 from Andy1210/fix/bbox-memorybarrier-mainline
VideoBackends/OGL: Don't call glMemoryBarrier without ARB_shader_image_load_store
2026-08-09 15:12:01 +12:00
JosJuice cd3ea81462 Merge pull request #14767 from JosJuice/state-nand-open-file
IOS/FS: Fix loading savestate when files are open
2026-08-08 13:02:54 +02:00
Dentomologist f42c349c32 Merge pull request #14802 from phire/fallthrough_warnings
Enable Fallthrough warnings
2026-08-08 01:21:25 -07:00
Scott Mansell 02bffba368 Enable implicit fallthrough warnings for gcc/clang 2026-08-08 13:18:32 +12:00
Scott Mansell a6cf98332b Fix fallthough in CodeView/MemoryView widgets
This slightly changes the behaviour, but I think this is more correct.
2026-08-08 13:18:32 +12:00
Scott Mansell 7de31b291e Fix missing break in BluetoothRealDevice
Minor behaviour change, prevents an erroreous error log
2026-08-08 13:16:57 +12:00
Scott Mansell ca33c38afd Add missing breaks (no behaviour change) 2026-08-08 13:14:06 +12:00
Andy1210 21ace56160 VideoBackends/OGL: Don't call glMemoryBarrier without ARB_shader_image_load_store
glMemoryBarrier comes from ARB_shader_image_load_store, so on a desktop context
below GL 4.2 the pointer is null. bSupportsBBox is set from
bSupportsFragmentStoresAndAtomics, which such a driver can still have, so saving
a state reads the bounding box and calls a null pointer.

UsePersistentStagingBuffers() in OGLTexture.cpp already guards the same call with
bSupportsImageLoadStore.
2026-08-07 17:09:46 +02:00
Scott Mansell 1c4208e1fb Add fallthroughs to OpenGL InitExtentionList 2026-08-07 20:41:59 +12:00
Scott Mansell 4a10a9c634 Add fallthroughs to GetMurmurHash3 2026-08-07 19:27:41 +12:00
Sepalani 6496d6c0c9 Common/BitCastPtr: Prevent destination type to be a pointer 2026-08-05 00:15:16 +04:00
Scott Mansell 9c5ff6b248 Mach exception thread: Fix msg alignment
msg_in and msg_out were ending up with only 4-byte alignment, which
is undefined behaviour, since they contain 64-bit fields. Probably
doesn't cause any issues, but it showed up in ubsan.
2026-08-03 22:46:45 +12:00
JosJuice f5be1c30e5 VideoCommon: Fix custom texture count in OSD message
83dc468 broke the OSD message that shows the number of custom textures.
If Prefetch Custom Textures was disabled, the number would always be 0.
2026-08-02 10:11:15 +02:00
Dr. Dystopia be3ad38ec7 Use designated constructors 2026-08-01 21:37:43 +02:00
Scott Mansell 5c6dcce721 Merge pull request #14758 from JoshuaVandaele/egl-platform-nowayland
Forbid EGL_PLATFORM to be "wayland"
2026-08-02 02:57:00 +12:00
JosJuice ad7e793548 Merge pull request #14768 from phire/security/gcz_overflows
Better validation and handling of GCZ
2026-08-01 12:26:10 +02:00
Scott Mansell 3c63788e01 Merge pull request #14776 from tygyh/Core/Use-static-cast
Replace functional cast with `static_cast`
2026-08-01 22:17:15 +12:00
Scott Mansell 463bcb8aeb Merge pull request #14781 from sepalani/gai-error
IP/Top: Add getaddrinfo() error log message
2026-08-01 22:15:10 +12:00
Sepalani a3a43f9bd2 IP/Top: Add getaddrinfo() error log message 2026-07-31 18:25:54 +04:00
Joshua Vandaële 1c2b7fbf7f EGLX11: Forbid EGL_PLATFORM to be "wayland" 2026-07-31 10:34:00 +02:00
Scott Mansell f1b4345d08 Merge pull request #14755 from JoshuaVandaele/cmakeupd-qt-useless-dlls
windeployqt: Disable uneeded DLLs
2026-07-31 18:00:43 +12:00
Scott Mansell 3bd410c4c5 Merge pull request #14775 from tygyh/Replace-zero-constants-with-nullptr
Replace zero constants with `nullptr`
2026-07-31 13:49:48 +12:00
Scott Mansell 74c51895c8 Merge pull request #13452 from tygyh/Use-structured-binding-DolphinQt-FifoAnalyzer
DolphinQt/FIFO/FifoAnalyzer: Use structured bindings
2026-07-31 01:02:32 +12:00
Scott Mansell 5e1e4dbc4c Merge pull request #14778 from JoshuaVandaele/about-enable-sdl
AboutDialog: Fix compilation with ENABLE_SDL=OFF
2026-07-31 00:57:12 +12:00
Dr. Dystopia a5552e612c Replace functional cast with static_cast 2026-07-30 14:18:47 +02:00
Scott Mansell 20fea85b53 Merge pull request #14765 from slick-daddy/opt-6
InputCommon: return the device list directly in GetAllDevices
2026-07-30 21:10:41 +12:00
Joshua Vandaële d5e3c2bcfc AboutDialog: Fix compilation with ENABLE_SDL=OFF 2026-07-29 21:27:06 +02:00
Dr. Dystopia 61e97c9a09 Replace zero constants with nullptr 2026-07-29 18:15:38 +02:00
Scott Mansell e9317dbe48 Merge pull request #14115 from techflashYT/elf-loader-fix
Core/Boot: Fix ELF load address semantics
2026-07-29 18:12:24 +12:00
Scott Mansell c863abc0d3 Merge pull request #14770 from JoshuaVandaele/gen-approved-hash
AchievementApprovedHash: Automatically generate hash using CMake
2026-07-29 17:49:48 +12:00
Scott Mansell 9b726fd56b Merge pull request #13543 from tygyh/DiscIO-Use-views-keys
DiscIO: Use views::keys
2026-07-29 17:49:24 +12:00
Scott Mansell a3a5834100 Merge pull request #14766 from phire/security/dol_reader
DolReader: Fix integer wraparound
2026-07-29 13:30:04 +12:00
Scott Mansell 1c10b9e9ab Merge pull request #14738 from tygyh/Replace-concatination-with-stdformat
Replace string concatination with `fmt::format`
2026-07-29 13:28:58 +12:00
Scott Mansell 475f35e2fa Merge pull request #14747 from AdmiralCurtiss/dsp-hle-oob
HW/DSPHLE/AXVoice: Check array bounds in ApplyUpdatesForMs()
2026-07-29 13:26:27 +12:00
Scott Mansell bc6688c0aa Merge pull request #14752 from JoshuaVandaele/about-sdl
AboutDialog: Report the SDL version being used
2026-07-29 13:23:16 +12:00
Dr. Dystopia 08e183d322 Replace string concatination with fmt::format 2026-07-28 12:39:54 +02:00
Scott Mansell 4782a04c20 GCZ: use 64-bit for m_data_offset
A malicious GCZ file could probably force this to be negative.
Shouldn't cause any issues other than file read failures, but need to fix
because it is causing errors on MSVC.
2026-07-28 19:44:49 +12:00
Scott Mansell feeb36bf07 GCZ: validate while loading 2026-07-28 19:44:49 +12:00
Scott Mansell ffb0e2c594 GCZ: Don't trust block_num either
SectorReader::ReadChunk does do some validation on it, but it only
checks against the original disc size (reported by the GCZ file).
It has no idea how many blocks the header claimed the disc had.

A maliciously crafted GCZ file could trigger read overflows off the end
of the m_block_pointers/m_hashes arrays.
2026-07-28 19:44:49 +12:00
Scott Mansell a3740b5f71 GCZ: Don't trust GetBlockCompressedSize
It comes unverified from the file, and a maliciously crafted file could
trigger not one, but two buffer overflows in the heap.
2026-07-28 19:44:49 +12:00
Scott Mansell 8fb464040c DolReader: Fix integer wraparound
A malicious dol could theoretically use integer wraparound to bypass
bounds checking and cause DolReader to read past the end of m_bytes.

Could result in crashes, wasting large amounts of memory, or even the
disclosure of heap memory contents.
2026-07-27 21:15:51 +12:00
Joshua Vandaële 55c015e6ac AchievementApprovedHash: Automatically generate hash using CMake 2026-07-27 07:09:11 +02:00
slick-daddy aa2167d473 Return m_devices directly in GetAllDevices(). 2026-07-27 06:15:36 +03:00
JosJuice 8a90cbf638 IOS/FS: Fix loading savestate when files are open
We already had code to close open host files when reading or writing a
savestate, but due to d35fe1b we also need to close open guest files
when reading a savestate, otherwise DoStateRead fails to delete them.

I was considering an alternative solution where instead of copying and
clearing m_handles, we just set `handle.opened = false;` for each handle
before reading a savestate (but not before writing a savestate).
However, this wouldn't solve the problem of DoStateWriteOrMeasure's
calls to OpenFile failing due to all handles being open. I'm not aware
of any games that have that many handles open, though.
2026-07-26 11:01:01 +02:00
Joshua Vandaële 32c5f09767 Socket: Resolve incorrect include warning
This is a musl warning, according to fcntl.h's man page, the include should always be <fcntl.h> anyways
2026-07-25 05:19:26 +02:00