diff options
author | Erlang/OTP <[email protected]> | 2015-08-18 16:39:07 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2015-08-18 16:39:07 +0200 |
commit | 99461fca5e224cda77174bb1b5ccee47969e9874 (patch) | |
tree | f0870810d5bc2ec4fa372c879b297f775f98c5b7 | |
parent | 61828f77ca2542109ece006d730a4f8fe3300616 (diff) | |
parent | d2bb1ca56dcd0ab8e5b43c4368409317c3ddd4db (diff) | |
download | otp-99461fca5e224cda77174bb1b5ccee47969e9874.tar.gz otp-99461fca5e224cda77174bb1b5ccee47969e9874.tar.bz2 otp-99461fca5e224cda77174bb1b5ccee47969e9874.zip |
Merge branch 'lukas/erts/fix_ttsl_binary_leak/OTP-12941' into maint-18
* lukas/erts/fix_ttsl_binary_leak/OTP-12941:
erts: Fix binary memory leak in ttsl driver
-rw-r--r-- | erts/emulator/drivers/unix/ttsl_drv.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/drivers/unix/ttsl_drv.c b/erts/emulator/drivers/unix/ttsl_drv.c index 0f773b69fb..53146e71f0 100644 --- a/erts/emulator/drivers/unix/ttsl_drv.c +++ b/erts/emulator/drivers/unix/ttsl_drv.c @@ -720,6 +720,7 @@ static void ttysl_from_erlang(ErlDrvData ttysl_data, char* buf, ErlDrvSizeT coun } driver_enq_bin(ttysl_port,putcbuf,0,putcpos); + driver_free_binary(putcbuf); if (sz == 0) { for (;;) { @@ -1207,6 +1208,7 @@ static int outc(int c) putcbuf->orig_bytes[putcpos++] = c; if (putcpos == putclen) { driver_enq_bin(ttysl_port,putcbuf,0,putclen); + driver_free_binary(putcbuf); putcpos = 0; putclen = TTY_BUFFSIZE; putcbuf = driver_alloc_binary(BUFSIZ); |