Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
FuzzRegionDeserialize.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8
13
14bool FuzzRegionDeserialize(const uint8_t *data, size_t size) {
15 SkRegion region;
16 if (!region.readFromMemory(data, size)) {
17 return false;
18 }
20 region.isComplex();
21 SkRegion r2;
22 if (region == r2) {
23 region.contains(0,0);
24 } else {
25 region.contains(1,1);
26 }
28 if (!s) {
29 // May return nullptr in memory-constrained fuzzing environments
30 return false;
31 }
32 s->getCanvas()->drawRegion(region, SkPaint());
33 SkDEBUGCODE(SkRegionPriv::Validate(region));
34 return true;
35}
36
37#if defined(SK_BUILD_FOR_LIBFUZZER)
38extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
39 if (size > 512) {
40 return 0;
41 }
42 FuzzRegionDeserialize(data, size);
43 return 0;
44}
45#endif
bool FuzzRegionDeserialize(const uint8_t *data, size_t size)
#define SkDEBUGCODE(...)
Definition SkDebug.h:23
size_t readFromMemory(const void *buffer, size_t length)
bool contains(int32_t x, int32_t y) const
Definition SkRegion.cpp:364
bool isComplex() const
Definition SkRegion.h:158
int computeRegionComplexity() const
Definition SkRegion.cpp:176
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
struct MyStruct s
SK_API sk_sp< SkSurface > Raster(const SkImageInfo &imageInfo, size_t rowBytes, const SkSurfaceProps *surfaceProps)
static SkImageInfo MakeN32Premul(int width, int height)