From 4071225cdc12a36a08ddd3102a3dd17d4006c320 Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Mon, 29 Apr 2019 17:54:10 +0200 Subject: [PATCH] clients: close unused keymap fd In the simple examples in which keymap is not handled, the open descriptor has to be properly closed. After each suspend/resume sequence the keymap is send again to every client. On client weston-simple-egl the leak causes a segfault when no more file descriptors can be opened. Close the file descriptor and lazily copy/paste the comment already available in simple-dmabuf-v4l. Signed-off-by: Antonio Borneo --- clients/multi-resource.c | 2 ++ clients/simple-egl.c | 2 ++ clients/weston-info.c | 3 +++ 3 files changed, 7 insertions(+) diff --git a/clients/multi-resource.c b/clients/multi-resource.c index eb4fd440..f3c42d0d 100644 --- a/clients/multi-resource.c +++ b/clients/multi-resource.c @@ -296,6 +296,8 @@ static void keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard, uint32_t format, int fd, uint32_t size) { + /* Just so we don’t leak the keymap fd */ + close(fd); } static void diff --git a/clients/simple-egl.c b/clients/simple-egl.c index 8a086ef0..1afde36a 100644 --- a/clients/simple-egl.c +++ b/clients/simple-egl.c @@ -640,6 +640,8 @@ static void keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard, uint32_t format, int fd, uint32_t size) { + /* Just so we don’t leak the keymap fd */ + close(fd); } static void diff --git a/clients/weston-info.c b/clients/weston-info.c index 4134191b..08c26191 100644 --- a/clients/weston-info.c +++ b/clients/weston-info.c @@ -32,6 +32,7 @@ #include #include #include +#include #include @@ -463,6 +464,8 @@ static void keyboard_handle_keymap(void *data, struct wl_keyboard *keyboard, uint32_t format, int fd, uint32_t size) { + /* Just so we don’t leak the keymap fd */ + close(fd); } static void