diff options
author | Zephyron <zephyron@citron-emu.org> | 2025-02-08 19:45:27 +1000 |
---|---|---|
committer | Zephyron <zephyron@citron-emu.org> | 2025-02-08 19:45:27 +1000 |
commit | b89a85e22839a9c8b024520b954767a773e9a8cf (patch) | |
tree | 1ed0916da065222b3ba1a9d111f88f206099f4c5 /src/core | |
parent | cc4819744823ee7ebc0ca41533d2b0b938a72a53 (diff) |
service/set: improve settings handling and update serial number
- Update default console serial number prefix from "YUZ" to "CIT"
- Improve GetSettingsItemValueImpl template implementation:
* Add proper buffer management using std::vector
* Fix potential buffer overflow issues
* Use clearer variable naming
* Add proper size handling with actual_size
* Use memcpy for safer data copying
These changes improve the safety of settings handling while
updating the emulator's identity to use the Citron prefix
instead of yuzu's.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/service/set/system_settings_server.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/set/system_settings_server.h | 15 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index 3118d6621..41a690ba7 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -939,7 +939,7 @@ Result ISystemSettingsServer::GetBatteryLot(Out<BatteryLot> out_battery_lot) { Result ISystemSettingsServer::GetSerialNumber(Out<SerialNumber> out_console_serial) { LOG_INFO(Service_SET, "called"); - *out_console_serial = {"YUZ10000000001"}; + *out_console_serial = SerialNumber{"CIT10000000001"}; R_SUCCEED(); } diff --git a/src/core/hle/service/set/system_settings_server.h b/src/core/hle/service/set/system_settings_server.h index 0e1e470a8..11ef2cc33 100644 --- a/src/core/hle/service/set/system_settings_server.h +++ b/src/core/hle/service/set/system_settings_server.h @@ -38,11 +38,16 @@ public: const std::string& category, const std::string& name); template <typename T> - Result GetSettingsItemValueImpl(T& out_value, const std::string& category, - const std::string& name) { - u64 size{}; - R_RETURN(GetSettingsItemValueImpl(std::span{reinterpret_cast<u8*>(&out_value), sizeof(T)}, - size, category, name)); + Result GetSettingsItemValueImpl(T& output_value, const std::string& category, + const std::string& name) { + const size_t value_size = sizeof(T); + std::vector<u8> raw_data(value_size); + u64 actual_size{}; + + R_TRY(GetSettingsItemValueImpl(raw_data, actual_size, category, name)); + std::memcpy(&output_value, raw_data.data(), actual_size); + + R_SUCCEED(); } public: |