diff options
Diffstat (limited to 'sway/ipc.c')
-rw-r--r-- | sway/ipc.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -121,11 +121,15 @@ int ipc_client_handle_readable(int client_fd, uint32_t mask, void *data) { | |||
121 | } | 121 | } |
122 | 122 | ||
123 | int read_available; | 123 | int read_available; |
124 | ioctl(client_fd, FIONREAD, &read_available); | 124 | if (ioctl(client_fd, FIONREAD, &read_available) == -1) { |
125 | sway_log_errno(L_INFO, "Unable to read IPC socket buffer size"); | ||
126 | ipc_client_disconnect(client); | ||
127 | return 0; | ||
128 | } | ||
125 | 129 | ||
126 | // Wait for the rest of the command payload in case the header has already been read | 130 | // Wait for the rest of the command payload in case the header has already been read |
127 | if (client->payload_length > 0) { | 131 | if (client->payload_length > 0) { |
128 | if (read_available >= client->payload_length) { | 132 | if ((uint32_t)read_available >= client->payload_length) { |
129 | ipc_client_handle_command(client); | 133 | ipc_client_handle_command(client); |
130 | } | 134 | } |
131 | else { | 135 | else { |