/* * Copyright 2019 Google, LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "src/core/SkDescriptor.h" #include "src/core/SkRemoteGlyphCache.h" void FuzzSkDescriptorDeserialize(sk_sp bytes) { SkAutoDescriptor aDesc; bool ok = SkFuzzDeserializeSkDescriptor(bytes, &aDesc); if (!ok) { return; } auto desc = aDesc.getDesc(); desc->computeChecksum(); desc->isValid(); // An arbitrary number uint32_t tagToFind = 117; uint32_t ignore; desc->findEntry(tagToFind, &ignore); } #if defined(SK_BUILD_FOR_LIBFUZZER) extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { if (size > 1024) { return 0; } auto bytes = SkData::MakeWithoutCopy(data, size); FuzzSkDescriptorDeserialize(bytes); return 0; } #endif