summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSverker Eriksson <sverker@erlang.org>2020-05-27 18:07:04 +0200
committerSverker Eriksson <sverker@erlang.org>2020-05-27 18:07:04 +0200
commit3374175817ee7e5bfc5209a1220e2f1fece57915 (patch)
tree944498b261a61b7490f63eaaaf00c689737be18c
parent0f7b1d45d75050a3b8b165f0b8229d33191d0e8f (diff)
parentd6b9013a12e6c8e777e3490bdf9614339584b558 (diff)
downloaderlang-3374175817ee7e5bfc5209a1220e2f1fece57915.tar.gz
Merge branch 'maint'
-rw-r--r--erts/emulator/beam/external.c4
-rw-r--r--erts/emulator/test/distribution_SUITE.erl10
2 files changed, 11 insertions, 3 deletions
diff --git a/erts/emulator/beam/external.c b/erts/emulator/beam/external.c
index 6981e14fa8..1a29904f5e 100644
--- a/erts/emulator/beam/external.c
+++ b/erts/emulator/beam/external.c
@@ -5311,8 +5311,8 @@ encode_size_struct_int(TTBSizeContext* ctx, ErtsAtomCacheMap *acmp, Eterm obj,
ASSERT(dflags & DFLAG_EXPORT_PTR_TAG);
csz = tmp_result - ctx->last_result;
/* potentially multiple elements leading up to hopefull entry */
- vlen += csz/MAX_SYSIOVEC_IOVLEN;
- vlen++; /* hopefull entry */
+ vlen += (csz/MAX_SYSIOVEC_IOVLEN + 1
+ + 1); /* hopefull entry */
result += 4; /* hopefull index */
ctx->last_result = result;
}
diff --git a/erts/emulator/test/distribution_SUITE.erl b/erts/emulator/test/distribution_SUITE.erl
index 65b580f12c..52df62d057 100644
--- a/erts/emulator/test/distribution_SUITE.erl
+++ b/erts/emulator/test/distribution_SUITE.erl
@@ -74,6 +74,7 @@
message_latency_large_exit2/0,
system_limit/1,
hopefull_data_encoding/1,
+ hopefull_export_fun_bug/1,
mk_hopefull_data/0]).
%% Internal exports.
@@ -104,7 +105,7 @@ all() ->
{group, message_latency},
{group, bad_dist}, {group, bad_dist_ext},
start_epmd_false, epmd_module, system_limit,
- hopefull_data_encoding].
+ hopefull_data_encoding, hopefull_export_fun_bug].
groups() ->
[{bulk_send, [], [bulk_send_small, bulk_send_big, bulk_send_bigbig]},
@@ -2711,6 +2712,13 @@ chk_hopefull_fallback(Other, SameOther) ->
Other = SameOther,
ok.
+%% ERL-1254
+hopefull_export_fun_bug(Config) when is_list(Config) ->
+ Msg = [1, fun blipp:blapp/7,
+ 2, fun blipp:blapp/7],
+ {dummy, dummy@dummy} ! Msg. % Would crash on debug VM
+
+
%%% Utilities
timestamp() ->