mirror of
				https://github.com/swaywm/sway.git
				synced 2025-11-03 09:01:43 -05:00 
			
		
		
		
	Merge pull request #1153 from SirCmpwn/fix-1152
Fix dangling file descriptors (fixes #1152)
This commit is contained in:
		
						commit
						4e12bf64ef
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
					@ -161,7 +161,8 @@ int ipc_handle_connection(int fd, uint32_t mask, void *data) {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	int flags;
 | 
						int flags;
 | 
				
			||||||
	if ((flags=fcntl(client_fd, F_GETFD)) == -1 || fcntl(client_fd, F_SETFD, flags|FD_CLOEXEC) == -1) {
 | 
						if ((flags = fcntl(client_fd, F_GETFD)) == -1
 | 
				
			||||||
 | 
								|| fcntl(client_fd, F_SETFD, flags|FD_CLOEXEC) == -1) {
 | 
				
			||||||
		sway_log_errno(L_ERROR, "Unable to set CLOEXEC on IPC client socket");
 | 
							sway_log_errno(L_ERROR, "Unable to set CLOEXEC on IPC client socket");
 | 
				
			||||||
		close(client_fd);
 | 
							close(client_fd);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
| 
						 | 
					@ -193,13 +194,12 @@ int ipc_client_handle_readable(int client_fd, uint32_t mask, void *data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (mask & WLC_EVENT_ERROR) {
 | 
						if (mask & WLC_EVENT_ERROR) {
 | 
				
			||||||
		sway_log(L_ERROR, "IPC Client socket error, removing client");
 | 
							sway_log(L_ERROR, "IPC Client socket error, removing client");
 | 
				
			||||||
		client->fd = -1;
 | 
					 | 
				
			||||||
		ipc_client_disconnect(client);
 | 
							ipc_client_disconnect(client);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (mask & WLC_EVENT_HANGUP) {
 | 
						if (mask & WLC_EVENT_HANGUP) {
 | 
				
			||||||
		client->fd = -1;
 | 
							sway_log(L_DEBUG, "Client %d hung up", client->fd);
 | 
				
			||||||
		ipc_client_disconnect(client);
 | 
							ipc_client_disconnect(client);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue