diff options
author | Björn-Egil Dahlberg <[email protected]> | 2016-06-08 18:58:21 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2016-06-08 18:58:21 +0200 |
commit | 99655be9a918671b56846ff1731196c0d467f4cd (patch) | |
tree | cd35f1f8863d398db11f1ed311c93433b800c32c /erts/emulator/beam/erl_process_dump.c | |
parent | ce33a24033cc8c4cea735b5f2898708ce34f546d (diff) | |
download | otp-99655be9a918671b56846ff1731196c0d467f4cd.tar.gz otp-99655be9a918671b56846ff1731196c0d467f4cd.tar.bz2 otp-99655be9a918671b56846ff1731196c0d467f4cd.zip |
erts: Don't crash on maps on crash dumps
- Large Maps could cause a stack overrun during crash dump generation.
- This is a simple workaround until a solution has been implemented.
- The error has no impact on a running system.
Diffstat (limited to 'erts/emulator/beam/erl_process_dump.c')
-rw-r--r-- | erts/emulator/beam/erl_process_dump.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process_dump.c b/erts/emulator/beam/erl_process_dump.c index eeaa9a569c..a70dfb8e73 100644 --- a/erts/emulator/beam/erl_process_dump.c +++ b/erts/emulator/beam/erl_process_dump.c @@ -560,6 +560,11 @@ dump_externally(int to, void *to_arg, Eterm term) } } + /* Do not handle maps */ + if (is_map(term)) { + term = am_undefined; + } + s = p = sbuf; erts_encode_ext(term, &p); erts_print(to, to_arg, "E%X:", p-s); |