| Index: testing/libfuzzer/xfa_codec_fuzzer.h
|
| diff --git a/testing/libfuzzer/xfa_codec_fuzzer.h b/testing/libfuzzer/xfa_codec_fuzzer.h
|
| index 4281db0ac90b4b6ccc05e055ac0ec2be49c2878a..f38f65042e5d7e8f8954b969592e8377f3c7da8f 100644
|
| --- a/testing/libfuzzer/xfa_codec_fuzzer.h
|
| +++ b/testing/libfuzzer/xfa_codec_fuzzer.h
|
| @@ -43,28 +43,33 @@ class XFACodecFuzzer {
|
| private:
|
| class Reader : public IFX_SeekableReadStream {
|
| public:
|
| - Reader(const uint8_t* data, size_t size) : m_data(data), m_size(size) {}
|
| + Reader(const uint8_t* data, size_t size)
|
| + : m_data(data), m_size(size), m_nCurPos(0) {}
|
| ~Reader() {}
|
|
|
| void Release() override {}
|
|
|
| - bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override {
|
| + bool IsEOF() override { return m_nCurPos >= m_size; }
|
| +
|
| + size_t ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override {
|
| if (offset < 0 || static_cast<size_t>(offset) >= m_size)
|
| - return false;
|
| + return 0;
|
| if (offset + size > m_size)
|
| size = m_size - offset;
|
| if (size == 0)
|
| - return false;
|
| + return 0;
|
|
|
| memcpy(buffer, m_data + offset, size);
|
| - return true;
|
| + m_nCurPos = offset + static_cast<FX_FILESIZE>(size);
|
| + return size;
|
| }
|
|
|
| - FX_FILESIZE GetSize() override { return static_cast<FX_FILESIZE>(m_size); }
|
| + FX_FILESIZE GetSize() override { return m_size; }
|
|
|
| private:
|
| const uint8_t* const m_data;
|
| - size_t m_size;
|
| + FX_FILESIZE m_nCurPos;
|
| + FX_FILESIZE m_size;
|
| };
|
| };
|
|
|
|
|