pkg/compiler: fix infinite recursion in template instantiation

Currently we replace a template argument and then recurse
into the new type AST to see if there is more to replace.
If the description is buggy and the template argument
contains itself, then we will recurse infintiely trying
to replace it more and more.
Use post-order traversal when replacing template argument to fix this.
3 files changed
tree: 902e952ce0abf2eb06d757f9587497e14ef29a56
  1. .clang-format
  2. .gitignore
  3. .golangci.yml
  4. .travis.yml
  5. AUTHORS
  6. CODE_OF_CONDUCT.md
  7. CONTRIBUTORS
  8. Godeps/
  9. LICENSE
  10. Makefile
  11. README.md
  12. dashboard/
  13. docs/
  14. executor/
  15. fuzzbuzz.yaml
  16. fuzzit.sh
  17. pkg/
  18. prog/
  19. sys/
  20. syz-ci/
  21. syz-fuzzer/
  22. syz-hub/
  23. syz-manager/
  24. tools/
  25. vendor/
  26. vm/
README.md

syzkaller - kernel fuzzer

Build Status fuzzit Go Report Card Coverage Status GoDoc License

syzkaller is an unsupervised coverage-guided kernel fuzzer.
Supported OSes: Akaros, FreeBSD, Fuchsia, gVisor, Linux, NetBSD, OpenBSD, Windows.

Mailing list: syzkaller@googlegroups.com (join on web or by email).

Found bugs: Akaros, Darwin/XNU, FreeBSD, Linux, NetBSD, OpenBSD, Windows.

Documentation

Initially, syzkaller was developed with Linux kernel fuzzing in mind, but now it's being extended to support other OS kernels as well. Most of the documentation at this moment is related to the Linux kernel. For other OS kernels check: Akaros, Darwin/XNU, FreeBSD, Fuchsia, NetBSD, OpenBSD, Windows, gVisor.

External Articles

Disclaimer

This is not an official Google product.