diff options
author | kjlubick <kjlubick@google.com> | 2016-06-23 10:49:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-23 10:49:27 -0700 |
commit | 3e3c1a5857a43a2851aa5bb05d6639935793bac0 (patch) | |
tree | f67519f366452235c9a914b754bb9b3b9b5040c3 | |
parent | c04ff4788cb425db6d9bec0bde4edb14aec97f16 (diff) |
Add deserialize color space entry point for fuzzing
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2089783003
Review-Url: https://codereview.chromium.org/2089783003
-rw-r--r-- | fuzz/fuzz.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/fuzz/fuzz.cpp b/fuzz/fuzz.cpp index 853b5e0411..b8375d344a 100644 --- a/fuzz/fuzz.cpp +++ b/fuzz/fuzz.cpp @@ -36,6 +36,7 @@ static int fuzz_api(SkData*); static int fuzz_img(SkData*, uint8_t, uint8_t); static int fuzz_skp(SkData*); static int fuzz_icc(SkData*); +static int fuzz_color_deserialize(SkData*); int main(int argc, char** argv) { SkCommandLineFlags::Parse(argc, argv); @@ -53,6 +54,8 @@ int main(int argc, char** argv) { switch (FLAGS_type[0][0]) { case 'a': return fuzz_api(bytes); + case 'c': return fuzz_color_deserialize(bytes); + case 'i': if (FLAGS_type[0][1] == 'c') { //icc return fuzz_icc(bytes); @@ -386,6 +389,16 @@ int fuzz_icc(SkData* bytes) { return 0; } +int fuzz_color_deserialize(SkData* bytes) { + sk_sp<SkColorSpace> space(SkColorSpace::Deserialize(bytes->data(), bytes->size())); + if (!space) { + SkDebugf("[terminated] Couldn't deserialize Colorspace.\n"); + return 1; + } + SkDebugf("[terminated] Success! deserialized Colorspace.\n"); + return 0; +} + Fuzz::Fuzz(SkData* bytes) : fBytes(SkSafeRef(bytes)), fNextByte(0) {} void Fuzz::signalBug () { SkDebugf("Signal bug\n"); raise(SIGSEGV); } |