From b5f4b9f13b2d6a0d55629bf4f48310931268052a Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Tue, 21 Jul 2020 20:08:42 +0900 Subject: [PATCH] fix fd leak Change-Id: I3d048d776c57a71332c7f030bba5809c8d3c01d4 --- src/tbm_bufmgr_exynos.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/tbm_bufmgr_exynos.c b/src/tbm_bufmgr_exynos.c index 8fdd90e..0e1e3ca 100644 --- a/src/tbm_bufmgr_exynos.c +++ b/src/tbm_bufmgr_exynos.c @@ -1993,6 +1993,7 @@ tbm_exynos_init(tbm_bufmgr bufmgr, tbm_error_e *error) tbm_backend_bo_func *bo_func = NULL; int fp; tbm_error_e err; + int set_master = 0; char *value = NULL; if (!bufmgr) { @@ -2023,6 +2024,7 @@ tbm_exynos_init(tbm_bufmgr bufmgr, tbm_error_e *error) if (drmIsMaster(bufmgr_exynos->fd)) { tbm_drm_helper_set_tbm_master_fd(bufmgr_exynos->fd); + set_master = 1; bufmgr_exynos->device_name = drmGetDeviceNameFromFd(bufmgr_exynos->fd); if (!bufmgr_exynos->device_name) { @@ -2182,10 +2184,9 @@ fail_alloc_bufmgr_func: if (bufmgr_exynos->hashBos) drmHashDestroy(bufmgr_exynos->hashBos); fail_init_cache_state: - if (tbm_drm_helper_get_master_fd() >= 0) + if (set_master) tbm_drm_helper_unset_tbm_master_fd(); - else - tbm_drm_helper_unset_fd(); + tbm_drm_helper_unset_fd(); fail_get_device_name: if (bufmgr_exynos->fd >= 0) close(bufmgr_exynos->fd); -- 2.7.4