From 3720b0dbabfbb0dcc7a0f8bb80b218f3ca82d531 Mon Sep 17 00:00:00 2001 From: Ashutosh Mehra Date: Wed, 23 Jan 2019 12:24:13 +0530 Subject: [PATCH] Fix file handle leak in isRunningInContainer() function Close `cgroupFile` file handle at end of isRunningInContainer(). Signed-off-by: Ashutosh Mehra --- port/unix/omrsysinfo.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/port/unix/omrsysinfo.c b/port/unix/omrsysinfo.c index e95c09ec51e..c2ead34c7d8 100644 --- a/port/unix/omrsysinfo.c +++ b/port/unix/omrsysinfo.c @@ -4259,6 +4259,7 @@ static int32_t isRunningInContainer(struct OMRPortLibrary *portLibrary, BOOLEAN *inContainer) { int32_t rc = 0; + FILE *cgroupFile = NULL; /* Assume we are not in container */ *inContainer = FALSE; @@ -4269,7 +4270,7 @@ isRunningInContainer(struct OMRPortLibrary *portLibrary, BOOLEAN *inContainer) * then the process is not running in a container. * For any other cgroup name, assume we are in a container. */ - FILE *cgroupFile = fopen(OMR_PROC_PID_ONE_CGROUP_FILE, "r"); + cgroupFile = fopen(OMR_PROC_PID_ONE_CGROUP_FILE, "r"); if (NULL == cgroupFile) { int32_t osErrCode = errno; @@ -4322,6 +4323,9 @@ isRunningInContainer(struct OMRPortLibrary *portLibrary, BOOLEAN *inContainer) } Trc_PRT_isRunningInContainer_container_detected((uintptr_t)*inContainer); _end: + if (NULL != cgroupFile) { + fclose(cgroupFile); + } return rc; }