Coverage for /pythoncovmergedfiles/medio/medio/src/fuzzing/projects/pycups/fuzzer/fuzz_printer_management.py: 23%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1###### Coverage stub
2import atexit
3import coverage
4cov = coverage.coverage(data_file='.coverage', cover_pylib=True)
5cov.start()
6# Register an exist handler that will print coverage
7def exit_handler():
8 cov.stop()
9 cov.save()
10atexit.register(exit_handler)
11####### End of coverage stub
12#!/usr/bin/python3
13import sys
14import atheris
15import cups
18def TestOneInput(data: bytes):
19 if len(data) < 4:
20 return
22 fdp = atheris.FuzzedDataProvider(data)
24 try:
25 conn = cups.Connection()
27 # required argument
28 name = fdp.ConsumeUnicodeNoSurrogates(32)
29 kwargs = {}
31 if fdp.ConsumeBool():
32 kwargs["filename"] = fdp.ConsumeUnicodeNoSurrogates(32)
33 if fdp.ConsumeBool():
34 kwargs["ppdname"] = fdp.ConsumeUnicodeNoSurrogates(32)
35 if fdp.ConsumeBool():
36 kwargs["info"] = fdp.ConsumeUnicodeNoSurrogates(32)
37 if fdp.ConsumeBool():
38 kwargs["location"] = fdp.ConsumeUnicodeNoSurrogates(32)
39 if fdp.ConsumeBool():
40 kwargs["device"] = fdp.ConsumeUnicodeNoSurrogates(32)
42 #sometimes fuzz with a PPD object if available
43 if fdp.ConsumeBool():
44 try:
45 ppd = cups.PPD() # minimal empty object
46 kwargs["ppd"] = ppd
47 except Exception:
48 pass
50 # calling the addPrinter with fuzzed args
51 try:
52 conn.addPrinter(name, **kwargs)
53 except Exception:
54 pass
55 except Exception:
56 pass
59def main():
60 atheris.instrument_all()
61 atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
62 atheris.Fuzz()
65if __name__ == "__main__":
66 main()