|
|
|
@ -290,7 +290,7 @@ protected: |
|
|
|
void Get(Kernel::HLERequestContext& ctx) { |
|
|
|
LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString()); |
|
|
|
ProfileBase profile_base{}; |
|
|
|
ProfileData data{}; |
|
|
|
UserData data{}; |
|
|
|
if (profile_manager.GetProfileBaseAndData(user_id, profile_base, data)) { |
|
|
|
ctx.WriteBuffer(data); |
|
|
|
IPC::ResponseBuilder rb{ctx, 16}; |
|
|
|
@ -373,18 +373,18 @@ protected: |
|
|
|
reinterpret_cast<const char*>(base.username.data()), base.username.size()), |
|
|
|
base.timestamp, base.user_uuid.RawString()); |
|
|
|
|
|
|
|
if (user_data.size() < sizeof(ProfileData)) { |
|
|
|
LOG_ERROR(Service_ACC, "ProfileData buffer too small!"); |
|
|
|
if (user_data.size() < sizeof(UserData)) { |
|
|
|
LOG_ERROR(Service_ACC, "UserData buffer too small!"); |
|
|
|
IPC::ResponseBuilder rb{ctx, 2}; |
|
|
|
rb.Push(ERR_INVALID_BUFFER); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
ProfileData data; |
|
|
|
std::memcpy(&data, user_data.data(), sizeof(ProfileData)); |
|
|
|
UserData data; |
|
|
|
std::memcpy(&data, user_data.data(), sizeof(UserData)); |
|
|
|
|
|
|
|
if (!profile_manager.SetProfileBaseAndData(user_id, base, data)) { |
|
|
|
LOG_ERROR(Service_ACC, "Failed to update profile data and base!"); |
|
|
|
LOG_ERROR(Service_ACC, "Failed to update user data and base!"); |
|
|
|
IPC::ResponseBuilder rb{ctx, 2}; |
|
|
|
rb.Push(ERR_FAILED_SAVE_DATA); |
|
|
|
return; |
|
|
|
@ -406,15 +406,15 @@ protected: |
|
|
|
reinterpret_cast<const char*>(base.username.data()), base.username.size()), |
|
|
|
base.timestamp, base.user_uuid.RawString()); |
|
|
|
|
|
|
|
if (user_data.size() < sizeof(ProfileData)) { |
|
|
|
LOG_ERROR(Service_ACC, "ProfileData buffer too small!"); |
|
|
|
if (user_data.size() < sizeof(UserData)) { |
|
|
|
LOG_ERROR(Service_ACC, "UserData buffer too small!"); |
|
|
|
IPC::ResponseBuilder rb{ctx, 2}; |
|
|
|
rb.Push(ERR_INVALID_BUFFER); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
ProfileData data; |
|
|
|
std::memcpy(&data, user_data.data(), sizeof(ProfileData)); |
|
|
|
UserData data; |
|
|
|
std::memcpy(&data, user_data.data(), sizeof(UserData)); |
|
|
|
|
|
|
|
Common::FS::IOFile image(GetImagePath(user_id), Common::FS::FileAccessMode::Write, |
|
|
|
Common::FS::FileType::BinaryFile); |
|
|
|
|