[XAM] Added check for UserSetting max ID
This commit is contained in:
@@ -27,6 +27,8 @@ namespace xam {
|
|||||||
enum class X_USER_PROFILE_SETTING_SOURCE : uint32_t;
|
enum class X_USER_PROFILE_SETTING_SOURCE : uint32_t;
|
||||||
struct X_USER_PROFILE_SETTING;
|
struct X_USER_PROFILE_SETTING;
|
||||||
|
|
||||||
|
constexpr uint32_t kMaxUserSettingId = 0x58;
|
||||||
|
|
||||||
constexpr uint32_t SettingKey(X_USER_DATA_TYPE type, uint16_t size,
|
constexpr uint32_t SettingKey(X_USER_DATA_TYPE type, uint16_t size,
|
||||||
uint16_t id) {
|
uint16_t id) {
|
||||||
return static_cast<uint32_t>(type) << 28 | size << 16 | id;
|
return static_cast<uint32_t>(type) << 28 | size << 16 | id;
|
||||||
@@ -530,6 +532,12 @@ class UserSetting : public UserData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool is_setting_valid(uint32_t setting_id) {
|
static bool is_setting_valid(uint32_t setting_id) {
|
||||||
|
const auto setting = static_cast<AttributeKey>(setting_id);
|
||||||
|
|
||||||
|
if (setting.id < kMaxUserSettingId) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return std::find(known_settings.cbegin(), known_settings.cend(),
|
return std::find(known_settings.cbegin(), known_settings.cend(),
|
||||||
static_cast<UserSettingId>(setting_id)) !=
|
static_cast<UserSettingId>(setting_id)) !=
|
||||||
known_settings.cend();
|
known_settings.cend();
|
||||||
|
|||||||
Reference in New Issue
Block a user