From 9ffa9afb18af41bbb4b7369604351e1c4f6ec22a Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 28 Aug 2025 13:27:41 +0400 Subject: [PATCH 1/2] Fix crash from UnityEngine::JsonUtility::FromJson throwing on invalid json --- src/Hooks/MultiplayerStatusModelHooks.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Hooks/MultiplayerStatusModelHooks.cpp b/src/Hooks/MultiplayerStatusModelHooks.cpp index 655e51f..996325a 100644 --- a/src/Hooks/MultiplayerStatusModelHooks.cpp +++ b/src/Hooks/MultiplayerStatusModelHooks.cpp @@ -55,7 +55,13 @@ MAKE_AUTO_HOOK_FIND_VERBOSE(JsonUtility_FromJson_MultiplayerStatusData, getJsonU return MultiplayerCore::Models::MpStatusData::New_ctor(value); } else { DEBUG("JsonUtility_FromJson_MultiplayerStatusData orig call"); - // call orig here, remember to pass the info parameter to your orig call! - return JsonUtility_FromJson_MultiplayerStatusData(value, info); + try { + // call orig here, remember to pass the info parameter to your orig call! + return JsonUtility_FromJson_MultiplayerStatusData(value, info); + } catch (...) { + WARNING("JsonUtility_FromJson_MultiplayerStatusData exception caught, we have invalid json somewhere, printing backtrace for debugging..."); + Paper::Logger::Backtrace(40); + return nullptr; + } } } From e77f9ea176899ff4b19e336996454f25da291455 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 28 Aug 2025 14:28:51 +0400 Subject: [PATCH 2/2] Bump dependencies --- qpm.json | 2 +- qpm.shared.json | 258 ++++++++++++++++++++++++------------------------ 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/qpm.json b/qpm.json index 8ac849c..c467a67 100644 --- a/qpm.json +++ b/qpm.json @@ -119,7 +119,7 @@ }, { "id": "beatsaverplusplus", - "versionRange": "^0.2.2", + "versionRange": "^0.2.3", "additionalData": {} }, { diff --git a/qpm.shared.json b/qpm.shared.json index 07b8739..72288aa 100644 --- a/qpm.shared.json +++ b/qpm.shared.json @@ -120,7 +120,7 @@ }, { "id": "beatsaverplusplus", - "versionRange": "^0.2.2", + "versionRange": "^0.2.3", "additionalData": {} }, { @@ -133,60 +133,102 @@ "restoredDependencies": [ { "dependency": { - "id": "web-utils", - "versionRange": "=0.6.8", + "id": "sombrero", + "versionRange": "=0.1.43", "additionalData": { - "soLink": "https://github.com/bsq-ports/WebUtils/releases/download/v0.6.8/libweb-utils.so", - "debugSoLink": "https://github.com/bsq-ports/WebUtils/releases/download/v0.6.8/debug_libweb-utils.so", - "overrideSoName": "libweb-utils.so", - "modLink": "https://github.com/bsq-ports/WebUtils/releases/download/v0.6.8/WebUtils.qmod", - "branchName": "version/v0_6_8", + "headersOnly": true, + "branchName": "version/v0_1_43" + } + }, + "version": "0.1.43" + }, + { + "dependency": { + "id": "beatsaverplusplus", + "versionRange": "=0.2.3", + "additionalData": { + "soLink": "https://github.com/bsq-ports/BeatSaverPlusPlus/releases/download/v0.2.3/libbeatsaverplusplus.so", + "debugSoLink": "https://github.com/bsq-ports/BeatSaverPlusPlus/releases/download/v0.2.3/debug_libbeatsaverplusplus.so", + "overrideSoName": "libbeatsaverplusplus.so", + "modLink": "https://github.com/bsq-ports/BeatSaverPlusPlus/releases/download/v0.2.3/BeatSaverPlusPlus.qmod", + "branchName": "version/v0_2_3", "cmake": false } }, - "version": "0.6.8" + "version": "0.2.3" }, { "dependency": { - "id": "libil2cpp", - "versionRange": "=0.4.0", + "id": "bs-cordl", + "versionRange": "=4008.0.0", "additionalData": { "headersOnly": true, + "branchName": "version/v4008_0_0", "compileOptions": { - "systemIncludes": [ - "il2cpp/external/baselib/Include", - "il2cpp/external/baselib/Platforms/Android/Include" + "includePaths": [ + "include" + ], + "cppFeatures": [], + "cppFlags": [ + "-DNEED_UNSAFE_CSHARP", + "-fdeclspec", + "-DUNITY_2021", + "-DHAS_CODEGEN", + "-Wno-invalid-offsetof" ] } } }, - "version": "0.4.0" + "version": "4008.0.0" }, { "dependency": { - "id": "bsml", - "versionRange": "=0.4.55", + "id": "lapiz", + "versionRange": "=0.2.23", "additionalData": { - "soLink": "https://github.com/bsq-ports/Quest-BSML/releases/download/v0.4.55/libbsml.so", - "debugSoLink": "https://github.com/bsq-ports/Quest-BSML/releases/download/v0.4.55/debug_libbsml.so", - "overrideSoName": "libbsml.so", - "modLink": "https://github.com/bsq-ports/Quest-BSML/releases/download/v0.4.55/BSML.qmod", - "branchName": "version/v0_4_55", + "soLink": "https://github.com/raineaeternal/Lapiz/releases/download/v0.2.23/liblapiz.so", + "debugSoLink": "https://github.com/raineaeternal/Lapiz/releases/download/v0.2.23/debug_liblapiz.so", + "overrideSoName": "liblapiz.so", + "modLink": "https://github.com/raineaeternal/Lapiz/releases/download/v0.2.23/Lapiz.qmod", + "branchName": "version/v0_2_23", "cmake": true } }, - "version": "0.4.55" + "version": "0.2.23" }, { "dependency": { - "id": "sombrero", - "versionRange": "=0.1.43", + "id": "tinyxml2", + "versionRange": "=10.0.0", + "additionalData": { + "soLink": "https://github.com/MillzyDev/NDK-tinyxml2/releases/download/v10.0.0/libtinyxml2.so", + "debugSoLink": "https://github.com/MillzyDev/NDK-tinyxml2/releases/download/v10.0.0/debug_libtinyxml2.so", + "overrideSoName": "libtinyxml2.so", + "modLink": "https://github.com/MillzyDev/NDK-tinyxml2/releases/download/v10.0.0/tinyxml2.qmod", + "branchName": "version/v10_0_0", + "cmake": true + } + }, + "version": "10.0.0" + }, + { + "dependency": { + "id": "fmt", + "versionRange": "=11.0.2", "additionalData": { "headersOnly": true, - "branchName": "version/v0_1_43" + "branchName": "version/v11_0_2", + "compileOptions": { + "systemIncludes": [ + "fmt/include/" + ], + "cppFlags": [ + "-DFMT_HEADER_ONLY" + ] + } } }, - "version": "0.1.43" + "version": "11.0.2" }, { "dependency": { @@ -202,33 +244,47 @@ }, { "dependency": { - "id": "songcore", - "versionRange": "=1.1.24", + "id": "web-utils", + "versionRange": "=0.6.8", "additionalData": { - "soLink": "https://github.com/raineaeternal/Quest-SongCore/releases/download/v1.1.24/libsongcore.so", - "debugSoLink": "https://github.com/raineaeternal/Quest-SongCore/releases/download/v1.1.24/debug_libsongcore.so", - "overrideSoName": "libsongcore.so", - "modLink": "https://github.com/raineaeternal/Quest-SongCore/releases/download/v1.1.24/SongCore.qmod", - "branchName": "version/v1_1_24", - "cmake": true + "soLink": "https://github.com/bsq-ports/WebUtils/releases/download/v0.6.8/libweb-utils.so", + "debugSoLink": "https://github.com/bsq-ports/WebUtils/releases/download/v0.6.8/debug_libweb-utils.so", + "overrideSoName": "libweb-utils.so", + "modLink": "https://github.com/bsq-ports/WebUtils/releases/download/v0.6.8/WebUtils.qmod", + "branchName": "version/v0_6_8", + "cmake": false } }, - "version": "1.1.24" + "version": "0.6.8" }, { "dependency": { - "id": "tinyxml2", - "versionRange": "=10.0.0", + "id": "libil2cpp", + "versionRange": "=0.4.0", "additionalData": { - "soLink": "https://github.com/MillzyDev/NDK-tinyxml2/releases/download/v10.0.0/libtinyxml2.so", - "debugSoLink": "https://github.com/MillzyDev/NDK-tinyxml2/releases/download/v10.0.0/debug_libtinyxml2.so", - "overrideSoName": "libtinyxml2.so", - "modLink": "https://github.com/MillzyDev/NDK-tinyxml2/releases/download/v10.0.0/tinyxml2.qmod", - "branchName": "version/v10_0_0", - "cmake": true + "headersOnly": true, + "compileOptions": { + "systemIncludes": [ + "il2cpp/external/baselib/Include", + "il2cpp/external/baselib/Platforms/Android/Include" + ] + } } }, - "version": "10.0.0" + "version": "0.4.0" + }, + { + "dependency": { + "id": "scotland2", + "versionRange": "=0.1.6", + "additionalData": { + "soLink": "https://github.com/sc2ad/scotland2/releases/download/v0.1.6/libsl2.so", + "debugSoLink": "https://github.com/sc2ad/scotland2/releases/download/v0.1.6/debug_libsl2.so", + "overrideSoName": "libsl2.so", + "branchName": "version/v0_1_6" + } + }, + "version": "0.1.6" }, { "dependency": { @@ -247,25 +303,6 @@ }, "version": "0.1.9" }, - { - "dependency": { - "id": "paper2_scotland2", - "versionRange": "=4.6.4", - "additionalData": { - "soLink": "https://github.com/Fernthedev/paperlog/releases/download/v4.6.4/libpaper2_scotland2.so", - "overrideSoName": "libpaper2_scotland2.so", - "modLink": "https://github.com/Fernthedev/paperlog/releases/download/v4.6.4/paper2_scotland2.qmod", - "branchName": "version/v4_6_4", - "compileOptions": { - "systemIncludes": [ - "shared/utfcpp/source" - ] - }, - "cmake": false - } - }, - "version": "4.6.4" - }, { "dependency": { "id": "custom-types", @@ -288,27 +325,22 @@ }, { "dependency": { - "id": "bs-cordl", - "versionRange": "=4008.0.0", + "id": "paper2_scotland2", + "versionRange": "=4.6.4", "additionalData": { - "headersOnly": true, - "branchName": "version/v4008_0_0", + "soLink": "https://github.com/Fernthedev/paperlog/releases/download/v4.6.4/libpaper2_scotland2.so", + "overrideSoName": "libpaper2_scotland2.so", + "modLink": "https://github.com/Fernthedev/paperlog/releases/download/v4.6.4/paper2_scotland2.qmod", + "branchName": "version/v4_6_4", "compileOptions": { - "includePaths": [ - "include" - ], - "cppFeatures": [], - "cppFlags": [ - "-DNEED_UNSAFE_CSHARP", - "-fdeclspec", - "-DUNITY_2021", - "-DHAS_CODEGEN", - "-Wno-invalid-offsetof" + "systemIncludes": [ + "shared/utfcpp/source" ] - } + }, + "cmake": false } }, - "version": "4008.0.0" + "version": "4.6.4" }, { "dependency": { @@ -343,65 +375,33 @@ }, { "dependency": { - "id": "lapiz", - "versionRange": "=0.2.23", + "id": "songcore", + "versionRange": "=1.1.24", "additionalData": { - "soLink": "https://github.com/raineaeternal/Lapiz/releases/download/v0.2.23/liblapiz.so", - "debugSoLink": "https://github.com/raineaeternal/Lapiz/releases/download/v0.2.23/debug_liblapiz.so", - "overrideSoName": "liblapiz.so", - "modLink": "https://github.com/raineaeternal/Lapiz/releases/download/v0.2.23/Lapiz.qmod", - "branchName": "version/v0_2_23", + "soLink": "https://github.com/raineaeternal/Quest-SongCore/releases/download/v1.1.24/libsongcore.so", + "debugSoLink": "https://github.com/raineaeternal/Quest-SongCore/releases/download/v1.1.24/debug_libsongcore.so", + "overrideSoName": "libsongcore.so", + "modLink": "https://github.com/raineaeternal/Quest-SongCore/releases/download/v1.1.24/SongCore.qmod", + "branchName": "version/v1_1_24", "cmake": true } }, - "version": "0.2.23" - }, - { - "dependency": { - "id": "scotland2", - "versionRange": "=0.1.6", - "additionalData": { - "soLink": "https://github.com/sc2ad/scotland2/releases/download/v0.1.6/libsl2.so", - "debugSoLink": "https://github.com/sc2ad/scotland2/releases/download/v0.1.6/debug_libsl2.so", - "overrideSoName": "libsl2.so", - "branchName": "version/v0_1_6" - } - }, - "version": "0.1.6" - }, - { - "dependency": { - "id": "beatsaverplusplus", - "versionRange": "=0.2.2", - "additionalData": { - "soLink": "https://github.com/bsq-ports/BeatSaverPlusPlus/releases/download/v0.2.2/libbeatsaverplusplus.so", - "debugSoLink": "https://github.com/bsq-ports/BeatSaverPlusPlus/releases/download/v0.2.2/debug_libbeatsaverplusplus.so", - "overrideSoName": "libbeatsaverplusplus.so", - "modLink": "https://github.com/bsq-ports/BeatSaverPlusPlus/releases/download/v0.2.2/BeatSaverPlusPlus.qmod", - "branchName": "version/v0_2_2", - "cmake": false - } - }, - "version": "0.2.2" + "version": "1.1.24" }, { "dependency": { - "id": "fmt", - "versionRange": "=11.0.2", + "id": "bsml", + "versionRange": "=0.4.55", "additionalData": { - "headersOnly": true, - "branchName": "version/v11_0_2", - "compileOptions": { - "systemIncludes": [ - "fmt/include/" - ], - "cppFlags": [ - "-DFMT_HEADER_ONLY" - ] - } + "soLink": "https://github.com/bsq-ports/Quest-BSML/releases/download/v0.4.55/libbsml.so", + "debugSoLink": "https://github.com/bsq-ports/Quest-BSML/releases/download/v0.4.55/debug_libbsml.so", + "overrideSoName": "libbsml.so", + "modLink": "https://github.com/bsq-ports/Quest-BSML/releases/download/v0.4.55/BSML.qmod", + "branchName": "version/v0_4_55", + "cmake": true } }, - "version": "11.0.2" + "version": "0.4.55" } ] } \ No newline at end of file