Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
FuzzSVG.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2020 Google, LLC
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
14
15#if defined(SK_ENABLE_SVG)
16
17void FuzzSVG(const uint8_t *data, size_t size) {
18 uint8_t w = 100;
19 uint8_t h = 200;
20
21 SkMemoryStream stream(data, size);
23 .setFontManager(ToolUtils::MakePortableFontMgr())
25 .make(stream);
26 if (!dom) {
27 return;
28 }
29
31 if (!s) {
32 return;
33 }
34 SkSize winSize = SkSize::Make(w, h);
35 dom->setContainerSize(winSize);
36 dom->containerSize();
37 dom->render(s->getCanvas());
38}
39
40#if defined(SK_BUILD_FOR_LIBFUZZER)
41extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
42 if (size > 30000) {
43 return 0;
44 }
45 FuzzSVG(data, size);
46 return 0;
47}
48#endif
49
50#endif // SK_ENABLE_SVG
Builder & setTextShapingFactory(sk_sp< SkShapers::Factory >)
Definition SkSVGDOM.cpp:400
sk_sp< SkSVGDOM > make(SkStream &) const
Definition SkSVGDOM.cpp:405
Builder & setFontManager(sk_sp< SkFontMgr >)
Definition SkSVGDOM.cpp:390
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
struct MyStruct s
sk_sp< Factory > BestAvailable()
SK_API sk_sp< SkSurface > Raster(const SkImageInfo &imageInfo, size_t rowBytes, const SkSurfaceProps *surfaceProps)
Definition dom.py:1
SkScalar w
SkScalar h
static SkImageInfo MakeN32Premul(int width, int height)
static constexpr SkSize Make(SkScalar w, SkScalar h)
Definition SkSize.h:56