summaryrefslogtreecommitdiffstats
path: root/tests/002/proc/2691
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-20 07:00:03 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-20 07:00:03 -0700
commit68811c68c7342d7307b684313962edd105b88a83 (patch)
tree794093b25c85ad4f9a369a63cbeb205832f80135 /tests/002/proc/2691
parentb67f0c623feb14ff27e1c70ef192163dd31b8945 (diff)
downloadtxr-68811c68c7342d7307b684313962edd105b88a83.tar.gz
txr-68811c68c7342d7307b684313962edd105b88a83.tar.bz2
txr-68811c68c7342d7307b684313962edd105b88a83.zip
Check call graph circularity in circ_backpatch.
The circ_backpatch function could suffer runaway recursion, so we must add a cycle check. This could happen due to hitting cyclical objects when traversing structs. Structs have static slots that could contain cyclic objects, as well as construction logic which can generate slots that contain cycles and are not overridden by anything in the literal. * parser.c (circ_backpatch): Take struct circ_stack * argument; extend the circ_stack in recursive calls. Do circular check on entry. (parser_resolve_circ): Pass null pointer as the new stack argument to circ_backpatch.
Diffstat (limited to 'tests/002/proc/2691')
0 files changed, 0 insertions, 0 deletions