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; |
}; |
}; |