Commit Graph
3422 Commits
Author SHA1 Message Date
Cameron Gutman 6fc7e81683 Handle H.264 SPS read/write failure in fixup path 2026-10-24 21:26:32 -05:00
Cameron Gutman 9fee675c91 Fix controller number check for adaptive triggers 2026-10-24 20:27:07 -05:00
Cameron Gutman d606709d83 Add some missing error handling 2026-10-24 19:54:47 -05:00
Cameron Gutman ba700d67ec Fix shadowed member variable with base class 2026-10-24 19:54:47 -05:00
Cameron Gutman 465c41b5c0 Fix uninitialized InitFailureReason field 2026-10-24 19:54:47 -05:00
Cameron Gutman 29a280eb38 Fix return type of EGLRenderer::loadAndBuildShader() 2026-10-24 19:46:14 -05:00
Cameron Gutman fb9daf85ab Keep the VBO alive while the VAO references it 2026-10-24 19:39:58 -05:00
Cameron Gutman df7db4018e Fix some EGL error handling paths 2026-10-24 19:39:58 -05:00
Cameron Gutman bfc6751f0f Fix fd leak in VAAPI KMSDRM codepath 2026-10-24 19:39:58 -05:00
Cameron Gutman 2b690d14ad Initialize VAAPIRenderer class members 2026-10-24 19:39:47 -05:00
Cameron Gutman 4158fa7823 Don't add EGL modifiers for VA images if they aren't set 2026-10-24 18:49:46 -05:00
Cameron Gutman 372887b8a2 Don't copy unpopulated EGLAttribs 2026-10-24 18:49:46 -05:00
Cameron Gutman 0c4f7aefb6 Handle unexpected appVersion/gfeVersion quads 2026-10-24 18:49:46 -05:00
Cameron Gutman 1826d4c232 Fix incorrect mmap() failure check 2026-10-24 18:49:46 -05:00
Cameron Gutman 40f83bd294 Avoid wedging VDPAU renderer if mixer creation fails 2026-10-24 18:49:46 -05:00
Chris 8f2e52e540 Refuse to open a pre-existing log file (#2068)
On macOS, release builds log to /tmp/Moonlight-<epoch>.log. /tmp is
shared by all users and the file name is predictable, so another local
user could plant symlinks at upcoming log names and have Moonlight
truncate and overwrite any file the victim can write to. The log was
also created world-readable.

Open the log with QIODevice::NewOnly (O_CREAT|O_EXCL) so an existing
file or symlink is never opened, and create it readable only by the
owner on Qt 6.3+. If the open fails we keep logging to stderr, as we
already did for any other open failure.
2026-10-24 18:19:58 -05:00
Chris c8474c515c Avoid signed overflow in bs_read_se() (#2071)
bs_read_ue() can return values above INT32_MAX. bs_read_se() stored the
result in an int32_t and computed (r+1)/2, which is undefined behavior
when the code is 0x7FFFFFFF and gives wrong values for codes above
INT32_MAX. The SPS being parsed comes from the host during the H.264
SPS fixup.

Do the conversion in unsigned arithmetic. bs_read_ue() returns at most
0xFFFFFFFE, so both branches produce in-range int32_t values, and every
code that was previously well-defined decodes to the same value.
2026-10-24 18:17:00 -05:00
Cameron Gutman 781b26fd1c Completely disable connection caching on Qt 6.12+ 2026-10-22 23:01:46 -05:00
Cameron Gutman 74173b26eb Enforce a TCP/TLS HTTP timeout on Qt 6.3+
Timeouts for long requests like launch or resume timed the entire
HTTP operation. If the host was no longer reachable, we could
spend 2 minutes sitting there, even though we hadn't even made
successful contact with the host to give it our request yet.

Now we will time out a request if we can't send it in 5 seconds,
regardless of how long we want to wait for the server to respond.
2026-10-22 22:54:32 -05:00
Cameron Gutman b709bf5402 Handle musl headers without __NR_riscv_hwprobe defined 2026-10-22 22:14:04 -05:00
Cameron Gutman d79536b56d Only accept usable bounds if they differ from the full bounds
Some platforms (Wayland) just report the full display area, so we
incorrectly assume the entire display is usable for a window.

Fixes #2056
2026-10-22 20:53:30 -05:00
Cameron Gutman 74020b537b Don't start polling from the GUI for a CLI launch
We can end up missing early computerStateChanged signals.

Fixes #2039
2026-10-22 19:28:12 -05:00
Cameron Gutman dc92b6d2f3 Update moonlight-common-c 2026-10-20 00:35:04 -05:00
Cameron Gutman 9af0e9f539 Improve robustness and error handling of DXVsyncSource 2026-10-20 00:29:25 -05:00
Cameron Gutman e4db5c2c18 Check for pacing queue emptiness before dequeuing
This shouldn't actually be reachable when the queue
is empty, but we can check anyway to be safe.

Ref: #2054
2026-10-19 00:25:00 -05:00
Cameron Gutman 9b8886a6f5 Fix integer truncation warning on MSVC 2026-10-19 00:15:26 -05:00
Cameron Gutman f018a71a8a Override NSApplicationUpdateCycleEnabled to fix reduced mouse polling rate
Apps built with the macOS 26+ SDK default to an event loop synchronized to the display which caps input polling rates.

We have to use the plist for the opt-out, since NSApp is already set up by Qt before SDL can set this default.

Fixes #2036
2026-10-17 14:06:10 -05:00
Cameron Gutman b0af84ead1 Deploy the OpenSSL TLS backend for Qt
It supports TLS 1.3 and PQ-KEX back to Windows 10, unlike Schannel
2026-10-14 02:01:01 -05:00
Cameron Gutman 289782c6f3 Fix possible UB shift in bs_write_u() for large values of n 2026-10-14 01:51:15 -05:00
Cameron Gutman ee557e83c6 Include the trailing 16 bytes in the challengeResponseData check 2026-10-14 01:49:44 -05:00
Cameron Gutman 2bd4b9f721 Add missing checks for X509 parsing failures 2026-10-14 01:39:00 -05:00
Cameron Gutman fa6ae80940 Clamp additional values that can be used as array indices
These aren't exploitable in moonlight due to clamping done on the read side.
2026-10-14 01:09:54 -05:00
Cameron Gutman 71c3191e0c Remove warn_off for h264bitstream 2026-10-12 02:31:48 -05:00
Cameron Gutman a614924502 Don't hardcode the QSslKey algorithm 2026-10-12 02:31:21 -05:00
Cameron Gutman a57e947d71 Re-add the h264bitstream file headers mistakenly removed during vendoring 2026-10-07 20:19:06 -05:00
Cameron Gutman de2467e433 Fix MSI signing v6.2.0 2026-10-03 19:02:01 -05:00
Cameron Gutman b7e0deb168 Don't require SIGNTOOL_PARAMS to contain the 'sign' command 2026-10-03 18:37:39 -05:00
Cameron Gutman afcd08ccbc Require SIGNTOOL_PARAMS to be set externally 2026-10-03 18:30:08 -05:00
Cameron Gutman e8fefc8cd2 Prepare for v6.2.0 2026-10-03 16:32:35 -05:00
Cameron Gutman 018c851e76 Change the default streaming resolution to 1080p 2026-10-03 13:37:58 -05:00
Cameron Gutman 7927da33d6 Fix matching with colon-separated XDG_CURRENT_DESKTOP values 2026-10-03 13:11:12 -05:00
Cameron Gutman 32c6ab6eee Update Windows CI to Qt 6.12
macOS remains on Qt 6.11.2 for v6.x to retain Ventura support
2026-10-03 12:45:15 -05:00
Cameron Gutman 6e699e4dc9 Update libplacebo, sdl2-compat, and SDL3 2026-10-03 00:39:45 -05:00
Brad Smith a2486eaf94 Check elf_aux_info() return value in hasFastAes()
Check the result of elf_aux_info() on FreeBSD and OpenBSD ARM and fall
back to no AES support if the call fails, rather than relying on the
output variable being left untouched.
2026-10-02 23:10:50 -05:00
Cameron Gutman 8369d1a0e1 Reduce gamepad CPU usage on Steam Link
- Gamepad sensors are now disabled by default
- Added a small deadzone to limit excess gamepad input reports
2026-09-27 17:39:10 -05:00
Cameron Gutman c0f62ad64e Distinguish between Enter and Numpad Enter
Fixes #2015
2026-09-26 15:21:11 -05:00
Cameron Gutman b75fe0d932 Reorganize a couple mouse and keyboard functions 2026-09-26 15:01:07 -05:00
Cameron Gutman 8ec572517b Fix CFG violation on startup in OpenSSL 2026-09-26 14:32:24 -05:00
Cameron Gutman b78956dba7 Update SDL to 383fb13 and disable CFG for OpenSSL
Closes #2020
2026-09-26 12:56:37 -05:00
Cameron Gutman 032529d782 Update FFmpeg to 9.0.2 and libplacebo to e2972fd 2026-09-20 15:23:43 -05:00