From fc8fd786c0e6fa9041ab4a10ae7d7ac90be11ad1 Mon Sep 17 00:00:00 2001 From: Kirill Primak Date: Wed, 31 Jan 2024 11:04:14 +0300 Subject: [PATCH] backend/drm: use wlr_drm_backend.name for fd cloning This also fixes a memleak. (cherry picked from commit 92ff86db234faae32707fc102a90aa51f8676203) --- backend/drm/drm.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/backend/drm/drm.c b/backend/drm/drm.c index c4ab39dd3..08511d0bc 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -1806,16 +1806,10 @@ int wlr_drm_backend_get_non_master_fd(struct wlr_backend *backend) { assert(backend); struct wlr_drm_backend *drm = get_drm_backend_from_backend(backend); - char *path = drmGetDeviceNameFromFd2(drm->fd); - if (!path) { - wlr_log(WLR_ERROR, "Failed to get device name from DRM fd"); - return -1; - } + int fd = open(drm->name, O_RDWR | O_CLOEXEC); - int fd = open(path, O_RDWR | O_CLOEXEC); if (fd < 0) { wlr_log_errno(WLR_ERROR, "Unable to clone DRM fd for client fd"); - free(path); return -1; }