Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:20
erlang
1199-erts-Fix-leak-in-erl_drv_send-output_term....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1199-erts-Fix-leak-in-erl_drv_send-output_term.patch of Package erlang
From c6d5e4312d81f3e711d5be26fa6abf61de0f7805 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Wed, 16 Dec 2020 16:31:36 +0100 Subject: [PATCH] erts: Fix leak in erl_drv_send/output_term when driver trying to send an invalid term erts_factory_undo() did not free factory->message when mode==FACTORY_HALLOC. --- erts/emulator/beam/erl_message.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/erts/emulator/beam/erl_message.c b/erts/emulator/beam/erl_message.c index cdd771ef7d..eb28774550 100644 --- a/erts/emulator/beam/erl_message.c +++ b/erts/emulator/beam/erl_message.c @@ -1805,6 +1805,15 @@ void erts_factory_undo(ErtsHeapFactory* factory) ERTS_HEAP_FRAG_SIZE(factory->heap_frags_saved->alloc_size)); } } + if (factory->message) { + ASSERT(factory->message->data.attached != ERTS_MSG_COMBINED_HFRAG); + ASSERT(!factory->message->data.heap_frag); + + /* Set the message to NIL in order for it not to be treated as + a distributed message by erts_cleanup_messages */ + factory->message->m[0] = NIL; + erts_cleanup_messages(factory->message); + } } break; -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor