aboutsummaryrefslogtreecommitdiffhomepage
path: root/fuzz
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-09-12 12:01:44 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-12 12:01:44 -0700
commit42943c8aa9c611c18ad0f1a30a27669f3d82239c (patch)
treedeff0bbc59dd92559191c188d73f97b4f9c580aa /fuzz
parent09524ae42998ece3a8e7973064ab286646511b31 (diff)
change SkStreams to work with sk_sp<SkData> instead of SkData*
Diffstat (limited to 'fuzz')
-rw-r--r--fuzz/Fuzz.h2
-rw-r--r--fuzz/fuzz.cpp34
2 files changed, 18 insertions, 18 deletions
diff --git a/fuzz/Fuzz.h b/fuzz/Fuzz.h
index 16a7f98d4e..0ab3c1bc6e 100644
--- a/fuzz/Fuzz.h
+++ b/fuzz/Fuzz.h
@@ -14,7 +14,7 @@
class Fuzz : SkNoncopyable {
public:
- explicit Fuzz(SkData*);
+ explicit Fuzz(sk_sp<SkData>);
// Returns the total number of "random" bytes available.
size_t size();
diff --git a/fuzz/fuzz.cpp b/fuzz/fuzz.cpp
index d2dc787dbe..ec47aa285f 100644
--- a/fuzz/fuzz.cpp
+++ b/fuzz/fuzz.cpp
@@ -34,11 +34,11 @@ static int printUsage(const char* name) {
}
static uint8_t calculate_option(SkData*);
-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*);
+static int fuzz_api(sk_sp<SkData>);
+static int fuzz_img(sk_sp<SkData>, uint8_t, uint8_t);
+static int fuzz_skp(sk_sp<SkData>);
+static int fuzz_icc(sk_sp<SkData>);
+static int fuzz_color_deserialize(sk_sp<SkData>);
int main(int argc, char** argv) {
SkCommandLineFlags::Parse(argc, argv);
@@ -54,21 +54,21 @@ int main(int argc, char** argv) {
if (!FLAGS_type.isEmpty()) {
switch (FLAGS_type[0][0]) {
- case 'a': return fuzz_api(bytes.get());
+ case 'a': return fuzz_api(bytes);
- case 'c': return fuzz_color_deserialize(bytes.get());
+ case 'c': return fuzz_color_deserialize(bytes);
case 'i':
if (FLAGS_type[0][1] == 'c') { //icc
- return fuzz_icc(bytes.get());
+ return fuzz_icc(bytes);
}
// We only allow one degree of freedom to avoid a search space explosion for afl-fuzz.
if (FLAGS_type[0][6] == 's') { // image_scale
- return fuzz_img(bytes.get(), option, 0);
+ return fuzz_img(bytes, option, 0);
}
// image_mode
- return fuzz_img(bytes.get(), 0, option);
- case 's': return fuzz_skp(bytes.get());
+ return fuzz_img(bytes, 0, option);
+ case 's': return fuzz_skp(bytes);
}
}
return printUsage(argv[0]);
@@ -88,7 +88,7 @@ static uint8_t calculate_option(SkData* bytes) {
return total;
}
-int fuzz_api(SkData* bytes) {
+int fuzz_api(sk_sp<SkData> bytes) {
const char* name = FLAGS_name.isEmpty() ? "" : FLAGS_name[0];
for (auto r = SkTRegistry<Fuzzable>::Head(); r; r = r->next()) {
@@ -117,7 +117,7 @@ static void dump_png(SkBitmap bitmap) {
}
}
-int fuzz_img(SkData* bytes, uint8_t scale, uint8_t mode) {
+int fuzz_img(sk_sp<SkData> bytes, uint8_t scale, uint8_t mode) {
// We can scale 1x, 2x, 4x, 8x, 16x
scale = scale % 5;
float fscale = (float)pow(2.0f, scale);
@@ -360,7 +360,7 @@ int fuzz_img(SkData* bytes, uint8_t scale, uint8_t mode) {
return 0;
}
-int fuzz_skp(SkData* bytes) {
+int fuzz_skp(sk_sp<SkData> bytes) {
SkMemoryStream stream(bytes);
SkDebugf("Decoding\n");
sk_sp<SkPicture> pic(SkPicture::MakeFromStream(&stream));
@@ -381,7 +381,7 @@ int fuzz_skp(SkData* bytes) {
return 0;
}
-int fuzz_icc(SkData* bytes) {
+int fuzz_icc(sk_sp<SkData> bytes) {
sk_sp<SkColorSpace> space(SkColorSpace::NewICC(bytes->data(), bytes->size()));
if (!space) {
SkDebugf("[terminated] Couldn't decode ICC.\n");
@@ -391,7 +391,7 @@ int fuzz_icc(SkData* bytes) {
return 0;
}
-int fuzz_color_deserialize(SkData* bytes) {
+int fuzz_color_deserialize(sk_sp<SkData> bytes) {
sk_sp<SkColorSpace> space(SkColorSpace::Deserialize(bytes->data(), bytes->size()));
if (!space) {
SkDebugf("[terminated] Couldn't deserialize Colorspace.\n");
@@ -401,7 +401,7 @@ int fuzz_color_deserialize(SkData* bytes) {
return 0;
}
-Fuzz::Fuzz(SkData* bytes) : fBytes(SkSafeRef(bytes)), fNextByte(0) {}
+Fuzz::Fuzz(sk_sp<SkData> bytes) : fBytes(bytes), fNextByte(0) {}
void Fuzz::signalBug () { SkDebugf("Signal bug\n"); raise(SIGSEGV); }
void Fuzz::signalBoring() { SkDebugf("Signal boring\n"); exit(0); }