summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler
diff options
context:
space:
mode:
authorBouke van der Bijl <[email protected]>2016-12-02 09:48:28 -0500
committerBouke van der Bijl <[email protected]>2016-12-07 15:14:17 -0500
commitd56a19cbf526190de036130fe3a5bf14a0705ee2 (patch)
tree9ab3653a11fb44464c407a53dcd7fda807cff588 /mrbgems/mruby-compiler
parent5930a6ebc7a5ebf0c9b2dfe1d250935e6ddaeceb (diff)
downloadmruby-d56a19cbf526190de036130fe3a5bf14a0705ee2.tar.gz
mruby-d56a19cbf526190de036130fe3a5bf14a0705ee2.zip
Don't generate code for NODE_NEGATE if the result isn't used
Reported by https://hackerone.com/haquaman
Diffstat (limited to 'mrbgems/mruby-compiler')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index b2cd12225..891c4f62b 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -2223,6 +2223,10 @@ codegen(codegen_scope *s, node *tree, int val)
{
nt = (intptr_t)tree->car;
tree = tree->cdr;
+ if (!val) {
+ codegen(s, tree, NOVAL);
+ break;
+ }
switch (nt) {
case NODE_FLOAT:
{