diff options
author | Kenny Levinsen <kl@kl.wtf> | 2020-08-04 01:43:24 +0200 |
---|---|---|
committer | Kenny Levinsen <kl@kl.wtf> | 2020-08-04 01:43:24 +0200 |
commit | db36f0dfe863e2fe20bcb4e8ef4ba06579ab2e53 (patch) | |
tree | 63dd4e3d03cf25a8478e2d1a7f6823ce56141e5f | |
parent | a8204ebceac760519d8653a10fedad6f21e8c11c (diff) |
client: Sanitize shutdown/kill mechanism
-rw-r--r-- | seatd/client.c | 3 | ||||
-rw-r--r-- | seatd/seat.c | 6 |
2 files changed, 3 insertions, 6 deletions
diff --git a/seatd/client.c b/seatd/client.c index 60e6d55..1adc2d9 100644 --- a/seatd/client.c +++ b/seatd/client.c @@ -76,8 +76,6 @@ void client_kill(struct client *client) { assert(client); if (client->connection.fd != -1) { shutdown(client->connection.fd, SHUT_RDWR); - close(client->connection.fd); - client->connection.fd = -1; }; if (client->seat != NULL) { seat_remove_client(client); @@ -96,7 +94,6 @@ void client_destroy(struct client *client) { client->event_source = NULL; } if (client->connection.fd != -1) { - shutdown(client->connection.fd, SHUT_RDWR); close(client->connection.fd); client->connection.fd = -1; } diff --git a/seatd/seat.c b/seatd/seat.c index 8650e2b..37f2b00 100644 --- a/seatd/seat.c +++ b/seatd/seat.c @@ -40,7 +40,7 @@ void seat_destroy(struct seat *seat) { while (!linked_list_empty(&seat->clients)) { struct client *client = (struct client *)seat->clients.next; // This will cause the client to remove itself from the seat - assert(client->seat); + assert(client->seat == seat); client_kill(client); } assert(seat->curttyfd == -1); @@ -367,7 +367,7 @@ int seat_open_client(struct seat *seat, struct client *client) { seat->active_client = client; if (client_send_enable_seat(client) == -1) { - seat_remove_client(client); + log_error("could not send enable signal"); return -1; } @@ -428,7 +428,7 @@ static int seat_disable_client(struct client *client) { client->pending_disable = true; if (client_send_disable_seat(seat->active_client) == -1) { - seat_remove_client(client); + log_error("could not send disable event"); return -1; } |