savestate: overflow crash when serializing
This commit is contained in:
parent
05961ac883
commit
d2aca1d621
|
@ -152,7 +152,7 @@ class Serializer : public SerializeBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Serializer()
|
Serializer()
|
||||||
: SerializeBase(std::numeric_limits<size_t>::max(), false), data(nullptr) { }
|
: Serializer(nullptr, std::numeric_limits<size_t>::max(), false) {}
|
||||||
|
|
||||||
Serializer(void *data, size_t limit, bool rollback = false)
|
Serializer(void *data, size_t limit, bool rollback = false)
|
||||||
: SerializeBase(limit, rollback), data((u8 *)data)
|
: SerializeBase(limit, rollback), data((u8 *)data)
|
||||||
|
@ -179,7 +179,6 @@ public:
|
||||||
}
|
}
|
||||||
void skip(size_t size)
|
void skip(size_t size)
|
||||||
{
|
{
|
||||||
verify(this->_size + size <= limit);
|
|
||||||
if (data != nullptr)
|
if (data != nullptr)
|
||||||
data += size;
|
data += size;
|
||||||
this->_size += size;
|
this->_size += size;
|
||||||
|
@ -189,7 +188,6 @@ public:
|
||||||
private:
|
private:
|
||||||
void doSerialize(const void *src, size_t size)
|
void doSerialize(const void *src, size_t size)
|
||||||
{
|
{
|
||||||
verify(this->_size + size <= limit);
|
|
||||||
if (data != nullptr)
|
if (data != nullptr)
|
||||||
{
|
{
|
||||||
memcpy(data, src, size);
|
memcpy(data, src, size);
|
||||||
|
|
Loading…
Reference in New Issue