summaryrefslogtreecommitdiffstats
path: root/txr.1
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 /txr.1
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 'txr.1')
0 files changed, 0 insertions, 0 deletions