aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/drivers/common/efile_drv.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2013-02-11 17:07:32 +0100
committerSverker Eriksson <[email protected]>2013-02-11 17:10:10 +0100
commitb473a5412dc141a009189b76b5d69dc43bacbd69 (patch)
tree219c573741510316b28317b0e51be9869af55f2e /erts/emulator/drivers/common/efile_drv.c
parent837d81ae4d1e032e91bbc8f8a54158f5ec61c707 (diff)
downloadotp-b473a5412dc141a009189b76b5d69dc43bacbd69.tar.gz
otp-b473a5412dc141a009189b76b5d69dc43bacbd69.tar.bz2
otp-b473a5412dc141a009189b76b5d69dc43bacbd69.zip
erts: Fix memory leak in efile_drv.c
Seems to happen with async threads and when user closes the file explicitly before the port is closed.
Diffstat (limited to 'erts/emulator/drivers/common/efile_drv.c')
-rw-r--r--erts/emulator/drivers/common/efile_drv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/drivers/common/efile_drv.c b/erts/emulator/drivers/common/efile_drv.c
index fda6cf2e53..2279fec72a 100644
--- a/erts/emulator/drivers/common/efile_drv.c
+++ b/erts/emulator/drivers/common/efile_drv.c
@@ -2263,6 +2263,8 @@ file_stop(ErlDrvData e)
desc->fd = FILE_FD_INVALID;
desc->flags = 0;
cq_execute(desc);
+ } else {
+ EF_FREE(desc);
}
} else {
if (desc->fd != FILE_FD_INVALID) {