summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2021-01-15 05:05:02 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-01-15 05:05:02 +0000
commit17a32e8072da33bfb5c137a3660e59b7287f8a3c (patch)
treeaeff4c2802dd2bb2f94b87b6c7cae41c4ef508bc /native
parent7a3e2a8f5ce72936c0d0fab3875646830582a345 (diff)
parentf63c349053b491f46ed8883684329353c6255194 (diff)
Merge "Improve AImageDecoder fuzzer"
Diffstat (limited to 'native')
-rw-r--r--native/graphics/jni/corpus/webp-color-profile-lossless.webpbin0 -> 43866 bytes
-rw-r--r--native/graphics/jni/fuzz_imagedecoder.cpp8
2 files changed, 7 insertions, 1 deletions
diff --git a/native/graphics/jni/corpus/webp-color-profile-lossless.webp b/native/graphics/jni/corpus/webp-color-profile-lossless.webp
new file mode 100644
index 000000000000..4fd63d5794ff
--- /dev/null
+++ b/native/graphics/jni/corpus/webp-color-profile-lossless.webp
Binary files differ
diff --git a/native/graphics/jni/fuzz_imagedecoder.cpp b/native/graphics/jni/fuzz_imagedecoder.cpp
index f2cd1a8f4eb9..015aca70e4e0 100644
--- a/native/graphics/jni/fuzz_imagedecoder.cpp
+++ b/native/graphics/jni/fuzz_imagedecoder.cpp
@@ -73,6 +73,12 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
return 0;
}
- AImageDecoder_decodeImage(decoder.get(), pixels.get(), stride, pixelSize);
+ while (true) {
+ int result = AImageDecoder_decodeImage(decoder.get(), pixels.get(), stride, pixelSize);
+ if (result != ANDROID_IMAGE_DECODER_SUCCESS) break;
+
+ result = AImageDecoder_advanceFrame(decoder.get());
+ if (result != ANDROID_IMAGE_DECODER_SUCCESS) break;
+ }
return 0;
}