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 /seatd | |
| parent | a8204ebceac760519d8653a10fedad6f21e8c11c (diff) | |
| download | seatd-db36f0dfe863e2fe20bcb4e8ef4ba06579ab2e53.tar.xz | |
client: Sanitize shutdown/kill mechanism
Diffstat (limited to 'seatd')
| -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;  	} | 
