From a3d68d7ff5658308c405e55f920d2d4023f57b5e Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Fri, 25 Jan 2013 11:42:32 +0100 Subject: Fix memory leak in driver call functionality --- erts/emulator/beam/io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erts/emulator/beam/io.c b/erts/emulator/beam/io.c index 45c2e61a6c..3ea4b24848 100644 --- a/erts/emulator/beam/io.c +++ b/erts/emulator/beam/io.c @@ -4258,9 +4258,9 @@ erts_port_call(Process* c_p, *retvalp = TUPLE2(hp, am_ok, term); hp += 3; HRelease(c_p, hp_end, hp); - if (resp_buf != &resp_buf[0] + if (resp_bufp != &resp_buf[0] && !(ret_flags & DRIVER_CALL_KEEP_BUFFER)) - driver_free(resp_buf); + driver_free(resp_bufp); BUMP_REDS(c_p, ERTS_PORT_REDS_CALL); return ERTS_PORT_OP_DONE; } -- cgit v1.2.3