summaryrefslogtreecommitdiffstats
path: root/struct.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-08-24 07:00:21 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-08-24 07:00:21 -0700
commiteba82ca4bb9efc87aaa84c6f358f2cde6c15e070 (patch)
tree85752bece4a69d0c28df4ea6681257af6ad64193 /struct.c
parent671c0c8c8b665367b80ffccd0ab903b271f8617a (diff)
downloadtxr-eba82ca4bb9efc87aaa84c6f358f2cde6c15e070.tar.gz
txr-eba82ca4bb9efc87aaa84c6f358f2cde6c15e070.tar.bz2
txr-eba82ca4bb9efc87aaa84c6f358f2cde6c15e070.zip
Put cap on @<digits> value in op/do syntax.
The op transformer generates a lambda which has as many arguments as the highest-valued metanumber (@<digits> syntax) occurring in the form. If this is a huge integer, it obligingly tries to construct the argument list, running out of memory. In this commit, we cap the value to 1024. This issue was uncovered by the fuzzing utility AFL (fast) 2.30b. * eval.c (me_op): Throw error if max exceeds 1024, preventing the call to supplement_op_syms to actually generate an a formal parameter list of max symbols.
Diffstat (limited to 'struct.c')
0 files changed, 0 insertions, 0 deletions