diff options
author | Lukas Larsson <[email protected]> | 2013-01-28 14:25:27 +0100 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2013-01-28 14:25:27 +0100 |
commit | d4fd0da2e1fc541bae7ed2de362f8a5f69357e27 (patch) | |
tree | 9475fb9e8263b7b40f67f44cd685b05ab9f699cc /erts/emulator/beam | |
parent | a0d96e34a9e55e4d928f814fba25c746a13de3e5 (diff) | |
parent | a3d68d7ff5658308c405e55f920d2d4023f57b5e (diff) | |
download | otp-d4fd0da2e1fc541bae7ed2de362f8a5f69357e27.tar.gz otp-d4fd0da2e1fc541bae7ed2de362f8a5f69357e27.tar.bz2 otp-d4fd0da2e1fc541bae7ed2de362f8a5f69357e27.zip |
Merge branch 'lukas/erts/fix_driver_call_memleak/OTP-10336'
* lukas/erts/fix_driver_call_memleak/OTP-10336:
Fix memory leak in driver call functionality
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/io.c | 4 |
1 files 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; } |