diff options
author | Sverker Eriksson <[email protected]> | 2016-08-23 17:17:43 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-08-23 18:39:05 +0200 |
commit | eb889b196ecb8128b4cb232ab2ebb2715c9b8993 (patch) | |
tree | 0f419e64c064db288339c2e5da7868830332cb87 /erts/emulator/beam/beam_load.c | |
parent | 8f0d1988c0943491e89428b54cd457c8e8e580a2 (diff) | |
download | otp-eb889b196ecb8128b4cb232ab2ebb2715c9b8993.tar.gz otp-eb889b196ecb8128b4cb232ab2ebb2715c9b8993.tar.bz2 otp-eb889b196ecb8128b4cb232ab2ebb2715c9b8993.zip |
erts: Reject an invalid beam code header size
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r-- | erts/emulator/beam/beam_load.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c index 30913910b6..8ad7862daa 100644 --- a/erts/emulator/beam/beam_load.c +++ b/erts/emulator/beam/beam_load.c @@ -1783,6 +1783,10 @@ read_code_header(LoaderState* stp) */ GetInt(stp, 4, head_size); + if (head_size > stp->file_left) { + LoadError2(stp, "invalid code header size %u; bytes left %u", + head_size, stp->file_left); + } stp->code_start = stp->file_p + head_size; stp->code_size = stp->file_left - head_size; stp->file_left = head_size; |