aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_trace.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2019-03-28 19:59:58 +0100
committerRickard Green <[email protected]>2019-04-05 14:50:27 +0200
commitf2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2 (patch)
treeaa69869ff75dadbcdf8c3432ec370c7af409d844 /erts/emulator/beam/erl_trace.c
parent060d9110ffb305d6ce5f974788948463e481203b (diff)
downloadotp-f2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2.tar.gz
otp-f2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2.tar.bz2
otp-f2671c2ef47f8c49cd5fab6e1737ed08d99ea5d2.zip
Fail when we cannot encode term in binary
Fail when we cannot encode term in binary instead of producing a faulty result.
Diffstat (limited to 'erts/emulator/beam/erl_trace.c')
-rw-r--r--erts/emulator/beam/erl_trace.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_trace.c b/erts/emulator/beam/erl_trace.c
index ae7084b7f4..c85a7df5ec 100644
--- a/erts/emulator/beam/erl_trace.c
+++ b/erts/emulator/beam/erl_trace.c
@@ -635,9 +635,11 @@ write_sys_msg_to_port(Eterm unused_to,
Eterm message) {
byte *buffer;
byte *ptr;
- unsigned size;
+ Uint size;
+
+ if (erts_encode_ext_size(message, &size) != ERTS_EXT_SZ_OK)
+ erts_exit(ERTS_ERROR_EXIT, "Internal error: System limit\n");
- size = erts_encode_ext_size(message);
buffer = (byte *) erts_alloc(ERTS_ALC_T_TMP, size);
ptr = buffer;