From 5764e86a16fc14bdd8ada8dea365f92e15a4bd09 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Wed, 19 Sep 2018 15:42:06 +0200 Subject: erts: Fix memory leak when sending to terminating port Cherry-picked from 7c5fcd3f2701cbb614930682ac52ff75b9c26e6c. Error: Leak_DefinitelyLost erts_alloc:230 (-> 0x52E54D) [erl_alloc.h] port_task_alloc:154 (-> 0x52F3CA) [erl_port_task.c] erts_port_task_alloc_p2p_sig_data:212 (-> 0x52F5D3) [erl_port_task.c] erts_port_output:2147 (-> 0x4F6057) [io.c] erts_port_command:4126 (-> 0x4FA10E) [io.c] do_send:2200 (-> 0x4E4C64) [bif.c] erl_send:2494 (-> 0x4E5E09) [bif.c] process_main:1730 (-> 0x43ADA5) [beam_emu.c] --- erts/emulator/beam/erl_port_task.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'erts') diff --git a/erts/emulator/beam/erl_port_task.c b/erts/emulator/beam/erl_port_task.c index 2083a43f69..ab4dd5f5d3 100644 --- a/erts/emulator/beam/erl_port_task.c +++ b/erts/emulator/beam/erl_port_task.c @@ -1474,10 +1474,10 @@ erts_port_task_schedule(Eterm id, } #endif - if (!pp) - goto fail; - if (type != ERTS_PORT_TASK_PROC_SIG) { + if (!pp) + goto fail; + ptp = port_task_alloc(); ptp->type = type; @@ -1515,6 +1515,9 @@ erts_port_task_schedule(Eterm id, ptp->u.alive.td.psig.callback = va_arg(argp, ErtsProc2PortSigCallback); ptp->u.alive.flags |= va_arg(argp, int); va_end(argp); + if (!pp) + goto fail; + if (!(ptp->u.alive.flags & ERTS_PT_FLG_NOSUSPEND)) set_tmp_handle(ptp, pthp); else { -- cgit v1.2.3 From 3e1615dc05cc5669882b2f1676622f810c903e0d Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 19 Sep 2018 16:21:12 +0200 Subject: Update version numbers --- erts/vsn.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'erts') diff --git a/erts/vsn.mk b/erts/vsn.mk index 474fe18d29..7cb89369f2 100644 --- a/erts/vsn.mk +++ b/erts/vsn.mk @@ -18,7 +18,7 @@ # %CopyrightEnd% # -VSN = 8.3.5.5 +VSN = 8.3.5.6 # Port number 4365 in 4.2 # Port number 4366 in 4.3 -- cgit v1.2.3 From 616d7d2b27182ce704ea647e075c2d66cd7c100a Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 19 Sep 2018 16:21:19 +0200 Subject: Update release notes --- erts/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'erts') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 9dc09dde01..7368d3e174 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,22 @@

This document describes the changes made to the ERTS application.

+
Erts 8.3.5.6 + +
Fixed Bugs and Malfunctions + + +

+ Fixed small memory leak that could occur when sending to + a terminating port.

+

+ Own Id: OTP-14609 Aux Id: ERIERL-238

+
+
+
+ +
+
Erts 8.3.5.5
Fixed Bugs and Malfunctions -- cgit v1.2.3