aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process_dump.c
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2016-06-08 18:58:21 +0200
committerBjörn-Egil Dahlberg <[email protected]>2016-06-08 18:58:21 +0200
commit99655be9a918671b56846ff1731196c0d467f4cd (patch)
treecd35f1f8863d398db11f1ed311c93433b800c32c /erts/emulator/beam/erl_process_dump.c
parentce33a24033cc8c4cea735b5f2898708ce34f546d (diff)
downloadotp-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.c5
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);