mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-06 00:40:11 +00:00
Minor code and memory initialization fixes
* Explicitly initialize member variables in SELFDecrypter, MemInfo, and VirtualMemoryBlock * Zero out memory used for counter/nonce in aes-ctr * Fix use of a ControlInfo pointer after it is added to an Array via Array::Move (which makes it an invalid pointer) in SELFDecrypter::LoadHeaders
This commit is contained in:
parent
64145d7d62
commit
d533572ee9
@ -2,7 +2,7 @@
|
||||
#include "unself.h"
|
||||
|
||||
SELFDecrypter::SELFDecrypter(vfsStream& s)
|
||||
: self_f(s), key_v()
|
||||
: self_f(s), key_v(), data_buf_length(0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -92,9 +92,10 @@ bool SELFDecrypter::LoadHeaders(bool isElf32)
|
||||
{
|
||||
ControlInfo* cinfo = new ControlInfo();
|
||||
cinfo->Load(self_f);
|
||||
ctrlinfo_arr.Move(cinfo);
|
||||
|
||||
i += cinfo->size;
|
||||
|
||||
ctrlinfo_arr.Move(cinfo);
|
||||
}
|
||||
|
||||
// Read ELF section headers.
|
||||
@ -369,6 +370,9 @@ bool SELFDecrypter::DecryptData()
|
||||
self_f.Seek(meta_shdr[i].data_offset);
|
||||
self_f.Read(buf, meta_shdr[i].data_size);
|
||||
|
||||
// Zero out our ctr nonce
|
||||
memset(ctr_stream_block, 0, sizeof(ctr_stream_block));
|
||||
|
||||
// Perform AES-CTR encryption on the data blocks.
|
||||
aes_setkey_enc(&aes, data_key, 128);
|
||||
aes_crypt_ctr(&aes, meta_shdr[i].data_size, &ctr_nc_off, data_iv, ctr_stream_block, buf, buf);
|
||||
|
@ -535,7 +535,7 @@ template<> __forceinline u64 MemoryBase::ReverseData<2>(u64 val) { return Revers
|
||||
template<> __forceinline u64 MemoryBase::ReverseData<4>(u64 val) { return Reverse32(val); }
|
||||
template<> __forceinline u64 MemoryBase::ReverseData<8>(u64 val) { return Reverse64(val); }
|
||||
|
||||
VirtualMemoryBlock::VirtualMemoryBlock() : MemoryBlock()
|
||||
VirtualMemoryBlock::VirtualMemoryBlock() : MemoryBlock(), m_reserve_size(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ struct MemInfo
|
||||
{
|
||||
}
|
||||
|
||||
MemInfo()
|
||||
MemInfo() : addr(0), size(0)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user