diff options
Diffstat (limited to 'backend/session')
-rw-r--r-- | backend/session/direct-ipc.c | 4 | ||||
-rw-r--r-- | backend/session/logind.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/backend/session/direct-ipc.c b/backend/session/direct-ipc.c index f8ba07f7..2dd777c8 100644 --- a/backend/session/direct-ipc.c +++ b/backend/session/direct-ipc.c @@ -159,7 +159,9 @@ static void communicate(int sock) { } error: send_msg(sock, ret ? -1 : fd, &ret, sizeof(ret)); - close(fd); + if (fd >= 0) { + close(fd); + } break; diff --git a/backend/session/logind.c b/backend/session/logind.c index 3a3cc57d..e01047e3 100644 --- a/backend/session/logind.c +++ b/backend/session/logind.c @@ -104,6 +104,7 @@ static void logind_release_device(struct wlr_session *base, int fd) { sd_bus_error_free(&error); sd_bus_message_unref(msg); + close(fd); } static bool logind_change_vt(struct wlr_session *base, unsigned vt) { |