error checking bugfix for sceNpTrophyCreateContext

options = 1 is allowed.
This commit is contained in:
Eladash 2019-10-15 17:04:22 +03:00 committed by Ivan
parent b03c2fc856
commit 4ed2c7b594
2 changed files with 9 additions and 4 deletions

View File

@ -232,12 +232,12 @@ error_code sceNpTrophyCreateContext(vm::ptr<u32> context, vm::cptr<SceNpCommunic
return SCE_NP_TROPHY_ERROR_NOT_INITIALIZED; return SCE_NP_TROPHY_ERROR_NOT_INITIALIZED;
} }
if (!context || !commId) if (!context || !commId || !commSign)
{ {
return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT; return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT;
} }
if (options > 0) if (options > SCE_NP_TROPHY_OPTIONS_CREATE_CONTEXT_READ_ONLY)
{ {
return SCE_NP_TROPHY_ERROR_NOT_SUPPORTED; return SCE_NP_TROPHY_ERROR_NOT_SUPPORTED;
} }
@ -253,8 +253,8 @@ error_code sceNpTrophyCreateContext(vm::ptr<u32> context, vm::cptr<SceNpCommunic
sceNpTrophy.warning("sceNpTrophyCreateContext term=%s data=%s num=%d", commId->term, commId->data, commId->num); sceNpTrophy.warning("sceNpTrophyCreateContext term=%s data=%s num=%d", commId->term, commId->data, commId->num);
if (commId->term) if (commId->term)
{ {
char trimchar[10] = { 0 }; char trimchar[10];
memcpy(trimchar, commId->data, sizeof(trimchar) - 1); strcpy_trunc(trimchar, commId->data);
deleteTerminateChar(trimchar, commId->term); deleteTerminateChar(trimchar, commId->term);
name = fmt::format("%s_%02d", trimchar, commId->num); name = fmt::format("%s_%02d", trimchar, commId->num);
} }

View File

@ -76,6 +76,11 @@ enum SceNpTrophyGrade
SCE_NP_TROPHY_GRADE_BRONZE = 4, SCE_NP_TROPHY_GRADE_BRONZE = 4,
}; };
enum
{
SCE_NP_TROPHY_OPTIONS_CREATE_CONTEXT_READ_ONLY = 1,
};
struct SceNpTrophyGameDetails struct SceNpTrophyGameDetails
{ {
be_t<u32> numTrophies; be_t<u32> numTrophies;