diff --git a/projects/fonttools/fuzz_compile.py b/projects/fonttools/fuzz_compile.py index 168425dbe..1187ec27d 100644 --- a/projects/fonttools/fuzz_compile.py +++ b/projects/fonttools/fuzz_compile.py @@ -47,7 +47,7 @@ def TestOneInput(data): def main(): atheris.instrument_all() - atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True) + atheris.Setup(sys.argv, TestOneInput) atheris.Fuzz() diff --git a/projects/fonttools/fuzz_ttfont.py b/projects/fonttools/fuzz_ttfont.py index 4c13ea696..610ac2a7d 100644 --- a/projects/fonttools/fuzz_ttfont.py +++ b/projects/fonttools/fuzz_ttfont.py @@ -38,7 +38,7 @@ def TestOneInput(data): def main(): atheris.instrument_all() - atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True) + atheris.Setup(sys.argv, TestOneInput) atheris.Fuzz() diff --git a/projects/fonttools/fuzz_ttfont_save.py b/projects/fonttools/fuzz_ttfont_save.py new file mode 100644 index 000000000..5ab1b77c4 --- /dev/null +++ b/projects/fonttools/fuzz_ttfont_save.py @@ -0,0 +1,45 @@ +#!/usr/bin/python3 +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import io +import sys +import atheris + +from fontTools import ttLib +from fontTools.ttLib import TTFont +import xml + + +def TestOneInput(data): + randfile = "/tmp/random2.ttx" + with open(randfile, "wb") as f: + f.write(data) + try: + otf = TTFont(randfile) + except Exception: + return + + # The idea to check here is that does not throw an issue when being loaded + # should be save-able. + otf.saveXML('/tmp/saved_font.xml') + +def main(): + atheris.instrument_all() + atheris.Setup(sys.argv, TestOneInput) + atheris.Fuzz() + + +if __name__ == "__main__": + main() diff --git a/projects/fonttools/fuzz_woff2.py b/projects/fonttools/fuzz_woff2.py index ebdf7dd8e..a2f28c18c 100644 --- a/projects/fonttools/fuzz_woff2.py +++ b/projects/fonttools/fuzz_woff2.py @@ -39,7 +39,7 @@ def TestOneInput(data): def main(): atheris.instrument_all() - atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True) + atheris.Setup(sys.argv, TestOneInput) atheris.Fuzz()