From eb889b196ecb8128b4cb232ab2ebb2715c9b8993 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Tue, 23 Aug 2016 17:17:43 +0200 Subject: erts: Reject an invalid beam code header size --- erts/emulator/beam/beam_load.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'erts/emulator/beam/beam_load.c') 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; -- cgit v1.2.3