7ffa40cedb
This CL renames FuzzPath() to FuzzNicePath() to remind us that it's meant to create paths that a user could reasonably want to create in good faith, to pass to Skia via its API, etc. Then, add fuzz_nice_rect(), and have FuzzNicePath() use that to create its rectangles and use FuzzNiceMatrix() to create its matrices, just like we already use FuzzNiceRRect() to create rounded rectangles and FuzzNicePath() itself to create sub-paths. Using fuzz_nice_rect() should be the fix for the attached bug. Using FuzzNiceMatrix() is by analogy, more preemptive. While we're at it, rename BuildPath to FuzzEvilPath, so the contrast with FuzzNicePath is more clear. Update the assertions that we create a valid path in FuzzNicePath() to tell us where things went wrong if they do. Bug: oss-fuzz:10667, skia:8384 Change-Id: I6d802182a62815cd969c65cf0479609f64b1da55 Reviewed-on: https://skia-review.googlesource.com/156840 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Kevin Lubick <kjlubick@google.com> Auto-Submit: Mike Klein <mtklein@google.com>
30 lines
672 B
C
30 lines
672 B
C
/*
|
|
* Copyright 2018 Google, LLC
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#ifndef FuzzCommon_DEFINED
|
|
#define FuzzCommon_DEFINED
|
|
|
|
#include "Fuzz.h"
|
|
#include "SkMatrix.h"
|
|
#include "SkPath.h"
|
|
#include "SkRRect.h"
|
|
#include "SkRegion.h"
|
|
|
|
// allows some float values for path points
|
|
void FuzzNicePath(Fuzz* fuzz, SkPath* path, int maxOps);
|
|
// allows all float values for path points
|
|
void FuzzEvilPath(Fuzz* fuzz, SkPath* path, int last_verb);
|
|
|
|
void FuzzNiceRRect(Fuzz* fuzz, SkRRect* rr);
|
|
|
|
void FuzzNiceMatrix(Fuzz* fuzz, SkMatrix* m);
|
|
|
|
void FuzzNiceRegion(Fuzz* fuzz, SkRegion* region, int maxN);
|
|
|
|
#endif
|
|
|