From 869237370df8133f0252ad2f803fcd6a152d98e7 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Tue, 6 Mar 2012 11:28:58 +0100 Subject: erts: Fix memory leak in code loading All magic binaries returned by prepare_loading/2 was leaking. prepare_loading/2 left the reference count as 2 of the magic binary when it should be 1 (only owned by the returned term). --- erts/emulator/beam/beam_bif_load.c | 1 + 1 file changed, 1 insertion(+) (limited to 'erts/emulator/beam/beam_bif_load.c') diff --git a/erts/emulator/beam/beam_bif_load.c b/erts/emulator/beam/beam_bif_load.c index 67c8442636..768c38dae1 100644 --- a/erts/emulator/beam/beam_bif_load.c +++ b/erts/emulator/beam/beam_bif_load.c @@ -136,6 +136,7 @@ prepare_loading_2(BIF_ALIST_2) } hp = HAlloc(BIF_P, PROC_BIN_SIZE); res = erts_mk_magic_binary_term(&hp, &MSO(BIF_P), magic); + erts_refc_dec(&magic->refc, 1); BIF_RET(res); } -- cgit v1.2.3