summaryrefslogtreecommitdiffstats
path: root/lib.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
commitc6fce0478a206a84f678e63ec242047f02ba8547 (patch)
tree85752bece4a69d0c28df4ea6681257af6ad64193 /lib.c
parent3005bda72a3eb14fc94225c3fd399cec98443a1c (diff)
downloadtxr-c6fce0478a206a84f678e63ec242047f02ba8547.tar.gz
txr-c6fce0478a206a84f678e63ec242047f02ba8547.tar.bz2
txr-c6fce0478a206a84f678e63ec242047f02ba8547.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 'lib.c')
0 files changed, 0 insertions, 0 deletions