Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Unified Diff: testing/libfuzzer/xfa_codec_fuzzer.h

Issue 2430743003: in the attempt to fix 627393, changed IFX_FileRead's readBlock to return the length it reads
Patch Set: remove .tmp files Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: testing/libfuzzer/xfa_codec_fuzzer.h
diff --git a/testing/libfuzzer/xfa_codec_fuzzer.h b/testing/libfuzzer/xfa_codec_fuzzer.h
index 38c4e0ac333f062343d5a7c06cfc9e80d659a3f0..2cc81453ea283050e443fb0de738237622e8d9da 100644
--- a/testing/libfuzzer/xfa_codec_fuzzer.h
+++ b/testing/libfuzzer/xfa_codec_fuzzer.h
@@ -43,22 +43,31 @@ class XFACodecFuzzer {
private:
class Reader : public IFX_FileRead {
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 {}
- FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override {
+ FX_BOOL IsEOF() override {
+ return m_nCurPos >= static_cast<FX_FILESIZE>(m_size);
+ }
+
+ size_t ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override {
+ if (offset > m_size)
+ return 0;
if (offset + size > m_size)
size = m_size - offset;
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); }
private:
const uint8_t* const m_data;
+ FX_FILESIZE m_nCurPos;
size_t m_size;
Tom Sepez 2016/10/19 23:12:48 this may be cleaner if it were FX_FILESIZE as well
};
};

Powered by Google App Engine
This is Rietveld 408576698