Results 6 issues of Charles Reiss

The lock parsing/evaluation/unparsing code is recursive and the only limits on the number of levels are based on what can be fit in a (~8KB) lock string. It might be...

bug
good first issue

The MUF program ``` : main { 1 2 3 }list ARRAY_PIN var! x { 4 5 6 }list ARRAY_PIN var! y x @ y @ 0 ARRAY_SETITEM POP y...

Nested arrays and array_pin can leak memory. For example, the MUF program: ``` : main { }dict ARRAY_PIN DUP 0 ARRAY_SETITEM DUP DUP ARRAY_SETITEM ; ``` leaks memory (AddressSanitizer report):...

bug

MUF arithmetic operations `+`,` -`, `bitshift` allow overflow/underflow to happen or bitshifts which are larger than the size of an integer. For `+` and `-`, they detect when this produces...

bug

Something like `2147483647 1 +` can overflow without making `err_ibounds?` true when the `optimize_muf` `@tune` is set. This is because the constant folding performed in `OptimizeIntermediate` does not check for...

bug

array_tree_compare tries to compare floats using a margin of DBL_EPSILON, but this means that its comparison is not transitive. It also uses division by one of the values being compared...

bug