mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-15 13:21:14 +00:00
sceNp: add some more array pointer checks
This commit is contained in:
parent
be863e763f
commit
c8e2b9cb99
@ -1169,8 +1169,8 @@ error_code sceNpBasicSendMessageGui(ppu_thread& ppu, vm::cptr<SceNpBasicMessageD
|
||||
|
||||
if (msg)
|
||||
{
|
||||
sceNp.notice("sceNpBasicSendMessageGui: msgId: %d, mainType: %d, subType: %d, msgFeatures: %d, count: %d", msg->msgId, msg->mainType, msg->subType, msg->msgFeatures, msg->count);
|
||||
for (u32 i = 0; i < msg->count; i++)
|
||||
sceNp.notice("sceNpBasicSendMessageGui: msgId: %d, mainType: %d, subType: %d, msgFeatures: %d, count: %d, npids: *0x%x", msg->msgId, msg->mainType, msg->subType, msg->msgFeatures, msg->count, msg->npids);
|
||||
for (u32 i = 0; i < msg->count && msg->npids; i++)
|
||||
{
|
||||
sceNp.trace("sceNpBasicSendMessageGui: NpId[%d] = %s", i, static_cast<char*>(&msg->npids[i].handle.data[0]));
|
||||
}
|
||||
@ -1338,9 +1338,12 @@ error_code sceNpBasicSendMessageGui(ppu_thread& ppu, vm::cptr<SceNpBasicMessageD
|
||||
.msgFeatures = msg->msgFeatures};
|
||||
std::set<std::string> npids;
|
||||
|
||||
for (u32 i = 0; i < msg->count; i++)
|
||||
if (msg->npids)
|
||||
{
|
||||
npids.insert(std::string(msg->npids[i].handle.data));
|
||||
for (u32 i = 0; i < msg->count; i++)
|
||||
{
|
||||
npids.insert(std::string(msg->npids[i].handle.data));
|
||||
}
|
||||
}
|
||||
|
||||
if (msg->subject)
|
||||
@ -2967,7 +2970,7 @@ error_code sceNpCustomMenuRegisterActions(vm::cptr<SceNpCustomMenu> menu, vm::pt
|
||||
|
||||
for (u32 i = 0; i < menu->numActions; i++)
|
||||
{
|
||||
if (!menu->actions[i].name)
|
||||
if (!menu->actions || !menu->actions[i].name)
|
||||
{
|
||||
return SCE_NP_CUSTOM_MENU_ERROR_INVALID_ARGUMENT;
|
||||
}
|
||||
|
@ -975,9 +975,12 @@ error_code sceNpMatching2GetRoomMemberIdListLocal(SceNpMatching2ContextId ctxId,
|
||||
|
||||
u32 num_members = std::min(memberIdNum, static_cast<u32>(vec_memberids.size()));
|
||||
|
||||
for (u32 i = 0; i < num_members; i++)
|
||||
if (memberId)
|
||||
{
|
||||
memberId[i] = vec_memberids[i];
|
||||
for (u32 i = 0; i < num_members; i++)
|
||||
{
|
||||
memberId[i] = vec_memberids[i];
|
||||
}
|
||||
}
|
||||
|
||||
return not_an_error(num_members);
|
||||
@ -1035,7 +1038,7 @@ error_code sceNpMatching2GetRoomMemberDataInternalLocal(SceNpMatching2ContextId
|
||||
std::vector<SceNpMatching2AttributeId> binattrs_list;
|
||||
for (u32 i = 0; i < attrIdNum; i++)
|
||||
{
|
||||
if (attrId[i] < SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_1_ID || attrId[i] >= SCE_NP_MATCHING2_USER_BIN_ATTR_1_ID)
|
||||
if (!attrId || attrId[i] < SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_1_ID || attrId[i] >= SCE_NP_MATCHING2_USER_BIN_ATTR_1_ID)
|
||||
{
|
||||
return SCE_NP_MATCHING2_ERROR_INVALID_ATTRIBUTE_ID;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user