aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-02-05 17:18:38 +0100
committerBjörn Gustavsson <[email protected]>2014-02-05 17:45:55 +0100
commitdf4932103f0e7b848e094ed56b1fc042f896cf8f (patch)
tree3db6511df7ff8027b91961e5bc31c59e2b13a957 /lib/compiler
parent665d708cf6804d552a07d294317e2c10443b5a62 (diff)
downloadotp-df4932103f0e7b848e094ed56b1fc042f896cf8f.tar.gz
otp-df4932103f0e7b848e094ed56b1fc042f896cf8f.tar.bz2
otp-df4932103f0e7b848e094ed56b1fc042f896cf8f.zip
beam_validator: Validate the "fun" argument for a call_fun/1 instruction
The fun argument for a call_fun/1 instruction was not validated.
Diffstat (limited to 'lib/compiler')
-rw-r--r--lib/compiler/src/beam_validator.erl1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_validator.erl b/lib/compiler/src/beam_validator.erl
index 97f84da08f..682f7adbc2 100644
--- a/lib/compiler/src/beam_validator.erl
+++ b/lib/compiler/src/beam_validator.erl
@@ -574,6 +574,7 @@ valfun_4({apply,Live}, Vst) ->
valfun_4({apply_last,Live,_}, Vst) ->
tail_call(apply, Live+2, Vst);
valfun_4({call_fun,Live}, Vst) ->
+ validate_src([{x,Live}], Vst),
call('fun', Live+1, Vst);
valfun_4({call,Live,Func}, Vst) ->
call(Func, Live, Vst);